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 é compatível com diferentes opções de computação do Google Cloud Platform (GCP) que hospedam o código de back-end de sua 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
do App Engine
Tempos de execução Java 8
e Python 2.7
Ambiente flexível
do App Engine
Compute Engine
GKE
Cloud Functions
Kubernetes
Outras não-GCP

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 do 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 GCP.

Com algumas exceções, o Endpoints para OpenAPI e o Endpoints para gRPC aceitam qualquer plataforma em que o contêiner do ESP possa ser implantado.

Limitações do ambiente padrão do App Engine

Sua única opção do Endpoints para o ambiente padrão do App Engine é o Endpoints Frameworks, e apenas os ambientes de execução do Java 8 e do Python 2.7 são compatíveis. O Endpoints não fornece uma solução para os outros ambientes de execução específicos de linguagem no ambiente padrão do App Engine.

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 uma gateway de API integrada que oferece recursos de gerenciamento de API comparáveis aos recursos fornecidos pelo Endpoints para OpenAPI e Endpoints para gRPC.

As APIs do gRPC não são compatíveis com o App Engine

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.

O ambiente flexível do App Engine aceita implantações com vários contêineres, mas o App Engine não é compatível com HTTP/2.

O Cloud Functions não é compatível

Com o Cloud Functions, você escreve funções simples e de propósito único para anexar a eventos que acontecem dentro da infraestrutura e dos serviços em nuvem. Você vincula um acionador a uma função para que a função seja executada quando um evento é disparado. No Cloud Functions, não há uma maneira de inserir o ESP na frente da função.

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 aceita APIs que são descritas com a versão 2.0 da especificação OpenAPI (anteriormente conhecida como 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, que é 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. Se você não está familiarizado com o gRPC, consulte O que é 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

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.