Escolher uma opção de pontos finais

Para ter a sua API gerida pelo Cloud Endpoints, tem três opções, consoante onde a sua API está alojada e o tipo de protocolo de comunicações que a sua API usa:

Esta página descreve as opções do Endpoints para ajudar a decidir qual é a mais adequada para si.

Escolher uma opção de computação

Os Endpoints suportam diferentes Google Cloud opções de computação que podem alojar o código de back-end da sua API. O Endpoints funciona com o proxy de serviço extensível (ESP) ou o proxy de serviço extensível V2 (ESPv2) para fornecer gestão de APIs. A tabela seguinte resume as opções de computação suportadas:

ESP para OpenAPI ESP para gRPC ESPv2 para OpenAPI ESPv2 para gRPC Frameworks de pontos finais
App Engine
ambiente padrão de 1.ª geração
Tempos de execução do Java 8 e Python 2.7
App Engine
standard environment generation 2
App Engine
ambiente flexível
Funções do Cloud Run
Cloud Run
Knative Serving
Compute Engine
GKE
Kubernetes
Outro nãoGoogle Cloud

Para uma comparação das funcionalidades fornecidas pelo App Engine, pelo GKE e pelo Compute Engine, consulte o artigo Escolher uma opção de computação. Se estiver a pensar em usar o App Engine, tem de escolher o ambiente padrão ou flexível. Para uma comparação dos dois ambientes, consulte o artigo Escolher um ambiente do App Engine.

Acerca das limitações da opção de computação

Os pontos finais para OpenAPI e os pontos finais para gRPC podem usar o ESP ou o ESPv2 como proxy. Para plataformas não sem servidor, o ESP ou o ESPv2 é implementado como um contentor à frente da sua aplicação ou como um sidecar com a sua aplicação. Para plataformas sem servidor, como o Cloud Run, as funções do Cloud Run e o App Engine, o ESPv2 é implementado como um serviço do Cloud Run como um proxy remoto para gerir as suas aplicações de plataforma sem servidor.

Depois de implementar o código de back-end da API, o ESP ou o ESPv2 intercetam todos os pedidos e realizam todas as verificações necessárias (como a autenticação) antes de encaminhar o pedido para o back-end da API. Quando o back-end responde, o ESP recolhe e comunica a telemetria através da infraestrutura de serviços.

Pode ver métricas para a sua API e links para registos e rastreios da Google Cloud Observability na página Serviços de pontos finais na Google Cloud consola.

Limitações do ambiente padrão de 1.ª geração do App Engine

Os pontos finais do ambiente padrão de 1.ª geração do App Engine usavam historicamente os frameworks de pontos finais, que só suportam os ambientes de execução Java 8 e Python 2.7.

Uma vez que o ambiente padrão do App Engine não suportava implementações com vários contentores quando as Frameworks de Endpoints estavam em desenvolvimento, as Frameworks de Endpoints não usam o ESP. Em alternativa, os Frameworks de Endpoints incluem um gateway de API incorporado que oferece funcionalidades de gestão de APIs comparáveis às funcionalidades que o ESP oferece para Endpoints para OpenAPI e Endpoints para gRPC.

As APIs gRPC não são suportadas em funções do App Engine ou do Cloud Run

gRPC é uma framework de chamadas de procedimento remoto (RPC) que pode ser executada em qualquer ambiente. Com o gRPC, uma aplicação cliente pode chamar diretamente métodos numa aplicação servidor numa máquina diferente como se fosse um objeto local. Uma funcionalidade essencial do gRPC é o streaming bidirecional com transporte baseado em HTTP/2.

As funções do App Engine e do Cloud Run não suportam HTTP/2.

Linguagens de programação suportadas

  • A especificação OpenAPI é uma especificação independente do idioma. Pode implementar a sua API em qualquer linguagem de programação.
  • O gRPC fornece o compilador de buffers do protocolo, protoc>, para muitas linguagens de programação principais: C++, C#, Objective-C (para iOS), Dart, Go, Java (incluindo suporte para Android), Node.js, Python e Ruby. Consulte as Perguntas frequentes sobre o gRPC para ver a lista mais atualizada.
  • O Endpoints Frameworks só suporta Java 8 e Python 2.7.

Descrever a sua API

As opções do Endpoints oferecem diferentes formas de descrever a sua API.

Pontos finais para a OpenAPI

A OpenAPI Initiative é um esforço em toda a indústria para padronizar a descrição das APIs REST. Os endpoints suportam APIs descritas através do OpenAPI 2.0 e do OpenAPI 3.x da especificação OpenAPI (anteriormente a especificação Swagger). Para saber mais, consulte o artigo Versões do OpenAPI suportadas. Descreve a superfície da sua API num ficheiro JSON ou YAML (denominado documento OpenAPI). Pode implementar a sua API através de qualquer framework REST disponível publicamente, como o Django ou o Jersey. Se não conhece a especificação OpenAPI, consulte a vista geral da OpenAPI.

Para mais informações, consulte o artigo Pontos finais para a OpenAPI.

Pontos finais para gRPC

Com o gRPC, define a estrutura dos dados que quer serializar num ficheiro proto: este é um ficheiro de texto normal com uma extensão .proto. Também define a superfície da sua API em ficheiros proto, com parâmetros do método RPC e tipos de retorno especificados como mensagens de buffer de protocolo. Se não conhece o gRPC, consulte o artigo O que é o gRPC? na documentação do gRPC.

Para mais informações, consulte o artigo Pontos finais para gRPC.

Endpoints Frameworks

O Endpoints Frameworks é uma framework Web para os ambientes de execução padrão do App Engine Python 2.7 e Java 8. Adiciona metadados (através de anotações em Java ou decoradores em Python) ao seu código fonte. Os metadados descrevem a superfície das APIs REST para a sua aplicação.

Para mais informações, consulte o artigo Frameworks de pontos finais.

O que se segue?