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
O API Gateway suporta APIs descritas através da especificação OpenAPI, versão 2.0. Isto significa que pode implementar as suas especificações da OpenAPI a partir dos 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
host
para 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
host
ou 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 especificaçã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:
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: ESP_HOST schemes: - https produces: - application/json paths: /hello: ...
Para os pontos finais:
Implemente o ESP, que cria o URL que usa para aceder às APIs implementadas no ESP. Por exemplo:
https://gateway-12345-uc.a.run.app
Edite a especificação OpenAPI para definir a propriedade
host
para o nome do domínio do URL do ESP. Por exemplohost: gateway-12345-uc.a.run.app
Implemente a especificação OpenAPI no ESP.
Aceda à sua API através do URL do ESP. Na especificação OpenAPI anterior, o elemento
paths
está definido como/hello
para que possa aceder a esta API através do seguinte URL:https://gateway-12345-uc.a.run.app/hello
Como pode ver, para os Endpoints, tem de implementar primeiro o ESP para poder definir o valor da propriedade host
.
Para usar esta definição de API para criar uma configuração de API para o API Gateway,
pode eliminar completamente a propriedade host
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 entrada, 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 entrada.
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 saber mais 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.