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

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 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 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:

  1. 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
  2. Edite a especificação OpenAPI para definir a propriedade host (no OpenAPI 2.0) ou servers.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
  3. Implemente a definição da OpenAPI no Vertex AI Search ou no ESPv2 Beta.

  4. Aceda à sua API através do URL do Vertex AI Search ou do ESPv2 Beta. Nas definições da OpenAPI anteriores, 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

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.

O que se segue?