IBM Cloud API Gateway(Legacy)를 통해 Functions 호출

소개



IBM이 제공하는 API 관리 솔루션이라고 하면 API Connect입니다만, IBM Cloud에서는 그 API Connect에 더해 간단하게 간단하게 API 공개를 할 수 있는 API Gateway라고 하는 서비스도 제공되고 있습니다. Legagy라고 붙은 것과 무인의 API Gateway의 2종류가 있는 것 같습니다. Qiita에서는 아직 기사가 보이지 않기 때문에, 간단하게 시험하는 순서를 정리해 보았습니다.

전제


  • IBM Cloud Lite 계정 (PAYG 등 다른 계정이 있으면 물론 가능)
  • Functions에서 Hello World 샘플이 Actions로 배포됨
  • 요청 본문에 JSON에서 {"name": "xxx"}를 넣으면 이름이 들어 있는 Hello xxx가 반환되고, 본문이 없으면 Hello World가 반환하는 샘플입니다.




  • 절차



  • API Gateway 서비스를 먼저 배포합니다.

  • 다음 에서 [Create service]를 클릭하고 서비스 이름과 리소스 그룹을 지정하여 생성합니다.



  • Create an API using Cloud Functions를 클릭하여 Create API에서 호출할 API 정의를 만듭니다. 이렇게 하면 Legacy API Gateway가 자동으로 생성됩니다.


  • API를 설정합니다.
  • API 이름과 기본 경로를 설정합니다.


  • 경로와 메서드와 이미 배포된 Functions 작업을 선택합니다. GET 및 POST 메소드 각각에 경로를 설정합니다.

  • 보안을 설정합니다. 여기에서는 API 키를 필수로 합니다. 또한 API 키를 보내는 방법으로 헤더를 지정합니다. 기본적으로 악명 높은? X-IBM-Client-ID로 API Connect(V5 기반)라면 변경할 수 없습니다만, 이 API Gateway에서는 변경이 가능하게 되어 있는 점이 포인트가 큽니다.

  • Rate Limit를 설정합니다. 여기에서는 1분에 10회를 넘는 호출을 하면 에러가 되도록(듯이) 합니다.
  • OAuth 또는 CORS 설정을 기본값으로 두십시오.
  • 리전, CF 조직 및 공간을 선택하고 저장합니다.
  • 정의가 완성되어 엔드 포인트가 생겼는지 확인합니다.
  • API 키를 만듭니다. Manage Sharing and API Keys에서 Create API Key를 클릭하고 키 이름을 입력하여 생성한 후 API 키의 값을 복사합니다.



  • 4. Review and Test의 각 경로의 Try it 탭에서 Client ID에 API 키를 넣고 POST와 GET을 각각 호출합니다. GET의 경우 200과 함께 Functions 샘플에서 설정된 Hello World가 응답으로 반환됩니다. POST의 경우 본문에 {"name": "Andy"}를 넣고 요청하면 Hello Andy가 응답으로 반환된다는 것을 알 수 있습니다.





    5. Postman에서 호출해도 동일하게 되는 것을 알 수 있습니다.



    6. Rate Limit를 초과하면 다음과 같이 429 오류를 반환합니다.


    7. X-Client-ID 헤더에 의한 API 키를 붙이지 않으면 401 에러를 돌려줍니다.


    요약



    이상으로 간편하게 IBM Cloud의 간단한 API Gateway 서비스로 간편하게 샘플 API를 게시하는 단계를 요약했습니다. 다음 번에는 Legacy가 아닌 API Gateway를 사용해 보겠습니다.

    참고


  • Connect digital applications and spur innovation
  • 좋은 웹페이지 즐겨찾기