Implementar APIs Cloud Endpoints no API Gateway
O Cloud Endpoints é um sistema de gestão de APIs que ajuda a proteger, monitorizar, analisar e definir quotas nas suas APIs. Os Endpoints usam o Extensible Service Proxy (ESP) ou o Extensible Service Proxy V2 Beta (ESPv2 Beta) para alojar as suas APIs.
Quando usa o Endpoints, tem três opções para definir a sua API:
- Cloud Endpoints para OpenAPI
- Cloud Endpoints para gRPC
- Frameworks do Cloud Endpoints para o ambiente padrão do App Engine
Desenvolver APIs com o API Gateway
Os Endpoints e o API Gateway suportam APIs descritas através da especificação OpenAPI, OpenAPI 2.0 ou OpenAPI 3.x. Se usou a OpenAPI para definir as suas APIs Endpoints, isto significa que também pode implementar as suas APIs Endpoints no API Gateway.
Implementar especificações OpenAPI do Endpoints no API Gateway
O API Gateway suporta o mesmo formato e opções de definição da especificação OpenAPI que são suportados pelo Cloud Endpoints para OpenAPI. Isto significa que pode usar a mesma segurança, quota e outras definições das especificações da OpenAPI dos Endpoints para definir uma API no API Gateway.
A única diferença entre os Endpoints e o API Gateway é a forma como processam a propriedade host na definição da especificação OpenAPI:
- Em Endpoints, defina a propriedade
hostpara a parte do nome do anfitrião do URL criado quando implementou o ESP, em que ESP é o serviço usado para alojar a sua API Endpoints. - No API Gateway, omita o
hostou defina-o como o nome DNS da API implementada. Os fornecedores de APIs definem-no frequentemente como o nome DNS quando partilham a especificação OpenAPI com os respetivos consumidores de APIs. No entanto, o Gateway da API não aplica o valor da propriedadehost.
Por exemplo, a seguinte é uma parte de uma definição da OpenAPI usada pelos Endpoints para definir uma API para aceder a um serviço de back-end implementado em funções do Cloud Run:
OpenAPI 2.0
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: HOST schemes: - https ...
OpenAPI 3.x
openapi: 3.0.4 info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 servers: - url: https://HOST x-google-endpoint: {} ...
Quando usa os Endpoints para implementar APIs:
Implemente o Vertex AI Search ou o ESPv2 Beta, que cria o URL que usa para aceder às APIs implementadas. Por exemplo:
https://gateway-12345-uc.a.run.app
Edite a especificação OpenAPI para definir a propriedade
host(no OpenAPI 2.0) ouservers.url(no OpenAPI 3.x) para o nome de domínio do URL do Vertex AI Search ou do ESPv2 Beta. Por exemplo:host: gateway-12345-uc.a.run.app
Implemente a definição da OpenAPI no Vertex AI Search ou no ESPv2 Beta.
Aceda à sua API através do URL do Vertex AI Search ou do ESPv2 Beta. Nas definições da OpenAPI anteriores, o elemento
pathsestá definido como/hellopara que possa aceder a esta API através do seguinte URL:https://gateway-12345-uc.a.run.app/hello
Para usar a mesma definição de API para criar uma configuração de API para o API Gateway,
pode eliminar completamente a propriedade host ou servers.url, ou deixá-la no ficheiro.
O Gateway da API não aplica o valor da propriedade host.
O URL do gateway implementado e, por conseguinte, o URL que os seus clientes usam para aceder à sua API, é definido quando cria o gateway, no formato:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
onde GATEWAY_ID é o nome da gateway, HASH é o código hash exclusivo gerado quando implementou a API, e REGION_CODE é o código da Google Cloud região onde implementou a gateway.
Depois de implementar uma API numa instância de gateway, o URL que usa para aceder a /hello é:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Para mais informações sobre a implementação de APIs, consulte o modelo de implementação do API Gateway.
Para mais informações sobre como criar a especificação OpenAPI para a definição da sua API, consulte a vista geral da OpenAPI.