Como escolher uma opção do Endpoints

Para ter sua API gerenciada pelo Cloud Endpoints, você tem três opções, dependendo do local em que a API está hospedada e do tipo de protocolo de comunicação usado por ela:

Nesta página, descrevemos as opções do Endpoints para ajudá-lo a decidir qual é a opção certa para você.

Como escolher uma opção de computação

O Endpoints oferece suporte a diferentes opções de computação do Google Cloud que podem hospedar o código de back-end da API. Na tabela a seguir, veja o resumo das opções de computação aceitas:

Endpoints para OpenAPI Endpoints para gRPC Endpoints Frameworks
Ambiente padrão da geração 1 do
App Engine
Ambiente de execução do Java 8 e
do Python 2.7
Ambiente padrão da geração 2 do
App Engine
Ambiente flexível do
App Engine
Cloud Functions
Cloud Run
Compute Engine
GKE
Kubernetes
Outro que não é do Google Cloud

Para uma comparação dos recursos fornecidos pelo App Engine, pelo GKE e pelo Compute Engine, consulte Como escolher uma opção de computação. Se você está considerando usar o App Engine, precisa escolher o ambiente padrão ou flexível. Para uma comparação dos dois ambientes, consulte Como escolher um ambiente do App Engine.

Sobre as limitações de opções de computação

O Endpoints para OpenAPI e o Endpoints para gRPC usam o Extensible Service Proxy (ESP) como gateway de API. Normalmente, o ESP é implantado como um contêiner na frente de seu aplicativo ou como um arquivo secundário com seu aplicativo. Depois que você implanta o código de back-end da API, o ESP intercepta todas as solicitações e executa as verificações necessárias (como autenticação) antes de encaminhar a solicitação ao back-end da API. Quando o back-end responde, o ESP coleta e relata a telemetria usando a Infraestrutura de serviços.

É possível ver as métricas da API e os links para os registros e traces do Stackdriver na página Serviços do Endpoints no Console do Cloud.

Limitações do ambiente padrão da geração 1 do App Engine

O Endpoints do ambiente padrão da geração 1 do App Engine usavam o Endpoints Frameworks, que é compatível com apenas os ambientes de execução Java 8 e Python 2.7.

Como o ambiente padrão do App Engine não era compatível com implantações de vários contêineres quando o Endpoints Frameworks estava em desenvolvimento, o Endpoints Frameworks não usa o ESP. Em vez disso, ele inclui um gateway de API (em inglês) integrado que oferece recursos de gerenciamento de API comparáveis aos recursos fornecidos pelo ESP para Endpoints para OpenAPI e Endpoints para gRPC.

As APIs gRPC não são compatíveis com o App Engine, o Cloud Functions ou o Cloud Run

gRPC é um framework de chamada de procedimento remoto (RPC, na sigla em inglês) que pode ser executado em qualquer ambiente. Com o gRPC, um aplicativo cliente pode chamar métodos diretamente em um aplicativo servidor em uma outra máquina, como se fosse um objeto local. Um recurso principal do gRPC é o streaming bidirecional com transporte baseado em HTTP/2.

Infelizmente, o App Engine, o Cloud Functions e o Cloud Run ainda não são compatíveis com HTTP/2.

Linguagens de programação compatíveis

  • A especificação OpenAPI é independente de linguagem. É possível implementar sua API em qualquer linguagem de programação.
  • O gRPC fornece o compilador de buffer de protocolo, protoc, para muitas das principais linguagens de programação: C ++, C#, Objective-C (para iOS), Dart, Go, Java, (incluindo compatibilidade com Android), Node.js, Python e Ruby. Consulte as Perguntas frequentes do gRPC para ver a lista mais atualizada.
  • O Endpoints Frameworks só aceita Java 8 e Python 2.7.

Como descrever sua API

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

Endpoints para OpenAPI

A Iniciativa OpenAPI é um esforço de todo o setor para padronizar a descrição de APIs REST. O Endpoints é compatível com APIs descritas usando a versão 2.0 da especificação OpenAPI (anteriormente chamada de especificação Swagger). Você descreve a superfície da API em um arquivo JSON ou YAML (chamado de documento OpenAPI). É possível implementar a API usando qualquer framework REST publicamente disponível, como Django ou Jersey. Se você não estiver familiarizado com a especificação OpenAPI, consulte Visão geral da OpenAPI.

Para mais informações, consulte Endpoints para OpenAPI.

Endpoints para gRPC

Com o gRPC, você define a estrutura dos dados que quer serializar em um arquivo proto: este é um arquivo de texto comum com uma extensão .proto. Você também define a superfície da API em arquivos proto, com parâmetros de método RPC e tipos de retorno especificados como mensagens de buffer de protocolo. Caso não conheça o gRPC, consulte O que é o gRPC? na documentação do gRPC.

Para mais informações, consulte Endpoints para gRPC.

Endpoints Frameworks

O Endpoints Frameworks é um framework da Web para os ambientes de execução padrão do Python 2.7 e Java 8 para App Engine. Você adiciona metadados (usando anotações em Java ou decoradores em Python) ao seu código-fonte. Os metadados descrevem a superfície das APIs REST do seu aplicativo.

Para mais informações, consulte Endpoints Frameworks.

A seguir