Cloud Endpoints Frameworks는 Extensible Service Proxy(ESP)가 Cloud Endpoints에 제공하는 기능과 비슷한 API 관리 기능을 제공합니다. Endpoints Frameworks에는 요청을 API 백엔드로 전달하기 전에 모든 요청을 가로채고 필요한 검사(예: 인증)를 수행하는 기본 제공 API 게이트웨이가 포함되어 있습니다. 백엔드가 응답하면 Endpoints Frameworks는 원격 분석 데이터를 수집하고 보고합니다. API의 측정항목은 Google Cloud 콘솔의 Endpoints > 서비스 페이지에서 확인할 수 있습니다.
Endpoints Frameworks에서 제공하는 API 관리 기능은 다음과 같습니다.
Endpoints를 통해 API를 관리하려면 OpenAPI 사양 버전 2.0을 사용하여 API를 설명하는 OpenAPI 문서를 배포해야 합니다. 이 페이지에서는 API를 관리하도록 Endpoints를 사용 설정하는 OpenAPI 문서를 생성하고 배포하는 방법을 설명합니다.
API 관리를 추가하지 않으면 API는 계속해서 요청을 처리하지만 Google Cloud Console의 Endpoints > 서비스 페이지에 API가 표시되지 않고 Endpoints에서 제공하는 기능(예: 로깅, 모니터링, 할당량 설정)을 사용할 수 없습니다.
API에 API 관리를 추가하려면 다음 단계를 따르세요.
빌드 파일 구성에 설명된 대로 Maven
pom.xml
파일 또는 Gradlebuild.gradle
파일을 설정합니다.빌드 파일에 Google Cloud 프로젝트 ID를 설정해야 합니다.
Maven
<endpoints.project.id>
를 찾고YOUR_PROJECT_ID
를 Google Cloud 프로젝트 ID로 바꿉니다. 예를 들면 다음과 같습니다.<endpoints.project.id>example-project-12345</endpoints.project.id>
Gradle
-
def projectId
를 찾고YOUR_PROJECT_ID
를 Google Cloud 프로젝트 ID로 바꿉니다. 예를 들면 다음과 같습니다.def projectId = 'example-project-12345'
build.gradle
파일에replaceProjectId
작업이 있는지 확인합니다. 이 작업은appengine-web.xml
과web.xml
파일에 프로젝트 ID를 설정합니다.
-
API 프로젝트의
web.xml
파일에서 API 관리 서블릿 필터 구성을 추가합니다.API 프로젝트의 빌드 구성을 수정합니다.
Maven
-
API 관리 종속 항목을 추가합니다.
-
클라이언트 라이브러리 및 OpenAPI 문서
openapi.json
을 생성하는 데 사용할 수 있는 플러그인을 포함합니다.
Gradle
-
API 관리 종속 항목을 추가합니다.
-
플러그인이 Maven Central에서 검색되도록 외부 종속 항목을 선언합니다.
-
OpenAPI 문서를 생성하는 서버 측 Endpoints Frameworks Gradle 플러그인을 사용합니다.
-
Endpoints 서비스 이름을 구성합니다.
-
종속 항목을 수정한 후 프로젝트를 삭제하고 API를 빌드합니다.
Maven
mvn clean mvn package
Gradle
gradle clean gradle build
OpenAPI 문서
openapi.json
을 생성합니다.Maven
mvn endpoints-framework:openApiDocs
Gradle
gradle endpointsOpenApiDocs
OpenAPI 문서를 배포합니다.
gcloud endpoints services deploy openapi.json
openapi.json
을 처음 배포할 때 새 Endpoints 서비스가YOUR_PROJECT_ID.appspot.com
이라는 이름으로 생성됩니다. 성공적으로 완료되면 서비스 구성 ID와 서비스 이름을 보여주는 다음과 같은 줄이 표시됩니다.Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com
앞의 예시에서
2017-02-13r0
는 서비스 구성 ID입니다. 서비스 구성 ID는 날짜 스탬프와 버전 번호로 구성됩니다.openapi.json
을 다시 배포하면 서비스 구성 ID의 버전 번호가 증가합니다.서비스 구성 ID를 다시 표시해야 하면 다음 명령어를 실행하지만,
YOUR_PROJECT_ID
를 Google Cloud 프로젝트의 프로젝트 ID로 바꿉니다.gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
생성된 문서를 사용하지 않고 자체 OpenAPI 문서를 만들어서 배포해도 됩니다. 단순히 위에서
openapi.json
을 OpenAPI 문서 경로로 바꿉니다. OpenAPI 문서 작성에 대한 자세한 내용은 OpenAPI 개요를 참조하세요.appengine-web.xml
파일을 수정하여 환경 변수의 값을 설정합니다.${endpoints.project.id}
를 Google Cloud 프로젝트 ID로 바꿉니다. 예를 들면 다음과 같습니다.<env-var name="ENDPOINTS_SERVICE_NAME" value="example-project-12345.appspot.com" />
애플리케이션을 다시 배포합니다.
Maven
mvn appengine:deploy
Gradle
gradle appengineDeploy
몇 가지를 요청하여 API를 테스트합니다.
API 측정항목을 보려면 프로젝트의 Google Cloud Console에서 Endpoints > 서비스 페이지를 엽니다.