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:

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 propriedade host.

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:

  1. 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
  2. Edite a especificação OpenAPI para definir a propriedade host para o nome do domínio do URL do ESP. Por exemplo

    host: gateway-12345-uc.a.run.app
  3. Implemente a especificação OpenAPI no ESP.

  4. 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.

O que se segue?