Para ter a sua API gerida pelo Cloud Endpoints, tem três opções, consoante onde a API está alojada e o tipo de protocolo de comunicações que a API usa:
- Cloud Endpoints para OpenAPI
- Cloud Endpoints para gRPC
- Frameworks do Cloud Endpoints para o ambiente padrão do App Engine
Esta página descreve as opções de 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 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 das suas APIs, 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 para o 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, o Endpoints Frameworks inclui um gateway de API incorporado que oferece funcionalidades de gestão de APIs comparáveis às funcionalidades que o ESP oferece para o Endpoints para OpenAPI e o 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 pontos finais suportam APIs descritas através da versão 2.0 da especificação OpenAPI (anteriormente a especificação Swagger). 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 tempo 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?
Veja as funcionalidades dos Endpoints em ação através do início rápido dos Endpoints, que usa scripts para implementar uma API de exemplo no ambiente flexível do App Engine.
Familiarize-se com os passos de implementação fazendo um dos tutoriais para a opção de Endpoints que escolheu:
Saiba mais sobre os pontos finais e o ESP: