Ferramenta de linha de comandos dos frameworks do Cloud Endpoints para o App Engine

Esta página descreve como usar a ferramenta de linha de comandos dos Frameworks de Endpoints para gerar uma biblioteca cliente a partir da sua API de back-end Python (o código que é executado no servidor). Qualquer app Java ou Android pode usar esta biblioteca para chamar a API.

Pode gerar pacotes de bibliotecas cliente que permitem que as aplicações acedam à sua API através da ferramenta de linha de comandos do Endpoints Frameworks. Quando gera uma biblioteca de cliente, a ferramenta de linha de comandos do Endpoints Frameworks gera automaticamente um documento Discovery que descreve a superfície da sua API.

A ferramenta de linha de comandos do Endpoints Frameworksendpointscfg.py está disponível na biblioteca do Endpoints Frameworks. Para obter informações sobre a instalação da biblioteca Endpoints Frameworks através do pip, consulte o artigo Instalar a biblioteca Endpoints Frameworks. Tenha em atenção que os seguintes comandos pressupõem que instalou a biblioteca Endpoints Frameworks num diretório denominado lib. Além disso, as instruções pressupõem que criou a sua API de back-end. Consulte o tutorial Endpoints Frameworks for Python para ver um exemplo de utilização da ferramenta de linha de comandos Endpoints Frameworks no código de exemplo.

Gerar um pacote de biblioteca de cliente a partir de uma API

Pode usar a ferramenta de linha de comandos Endpoints Frameworks para gerar os seguintes tipos de pacotes de cliente:

  • Maven: este pacote inclui um ficheiro pom.xml com as dependências dos Frameworks de Endpoints e da biblioteca cliente das APIs Google. O ficheiro readme.html fornece informações detalhadas sobre o que tem de adicionar ao ficheiro pom.xml para diferentes tipos de aplicações cliente e como criar uma biblioteca cliente para a sua API através do Maven.

  • Gradle: este pacote inclui um ficheiro build.gradle com as dependências dos Frameworks de Endpoints e da biblioteca cliente das APIs Google. O ficheiro readme.html fornece informações detalhadas sobre o que tem de adicionar ao ficheiro build.gradle para diferentes tipos de aplicações cliente e como criar uma biblioteca cliente para a sua API através do Gradle.

  • Pacote de cliente predefinido: este pacote contém todas as bibliotecas de dependências e o ficheiro source.jar gerado, que é a biblioteca Java que usa no cliente para chamar a API. Este pacote fornece ao seu cliente todas as capacidades da biblioteca cliente de APIs Google, incluindo o OAuth. O ficheiro readme.html indica os ficheiros .jar necessários para diferentes tipos de aplicações cliente e outros detalhes para usar a biblioteca cliente.

Se estiver a usar a biblioteca de cliente com uma app Android, recomendamos que use um pacote de cliente do Gradle.

Gerar a biblioteca de cliente

Para gerar a biblioteca de cliente:

  1. Mude o diretório para o diretório que contém o ficheiro app.yaml da API e as classes de serviço da API. Em alternativa, use a opção --application para especificar outra localização do diretório da aplicação.

  2. Invoque a ferramenta de linha de comandos do Endpoints Frameworks de forma semelhante à seguinte:

    lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
    

    em que main é a classe que contém a sua API e EchoApi é o nome da sua API.

  3. Aguarde que a ferramenta gere a biblioteca de cliente. Se for bem-sucedida, a ferramenta apresenta uma mensagem semelhante a esta:

    API client library written to ./echo-v1.zip
    
  4. Adicione o JAR da biblioteca cliente à sua app Android.

  5. Repita os passos anteriores sempre que modificar o código da API.

O pacote da biblioteca de cliente é escrito no diretório atual, a menos que especifique outro diretório de saída através da opção output.

Sintaxe da linha de comandos

A sintaxe básica é a seguinte:

/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME

where:

  • TARGET_LANG especifica o tipo de pacote de clientes que quer criar. Atualmente, tem de fornecer o valor java (para clientes Java, como o Android).
  • OPTIONS, se fornecido, é um ou mais itens apresentados na tabela de opções
  • CLASS_NAME é o nome da classe totalmente qualificado da sua API.

Opções

Pode usar as seguintes opções:

Nome da opção Descrição Exemplo
application Por predefinição, a ferramenta gera a partir da API de back-end no diretório atual.
Se quiser gerar a partir de um diretório diferente, especifique o caminho para o diretório que contém as classes app.yaml e de serviço que implementam a sua API.
--application /my_path/my_api_dir
build-system Permite especificar que tipo de pacote de cliente deve ser produzido. Especifique gradle para um pacote de cliente do Gradle para Android, maven para um pacote de cliente do Maven ou default (ou simplesmente omita esta opção) para um pacote que contenha apenas as bibliotecas de dependência e o JAR de origem. --build-system=gradle
-bs gradle
hostname Especifica o documento de descoberta rootURL.
Esta opção substitui o valor predefinido derivado da entrada application no projeto da API de back-end app.yaml ([YOUR_APP_ID].appspot.com) e o hostname definido no decorador da sua API.
Uma utilização desta opção é fornecer o nome do anfitrião localhost como o rootURL para testes locais.
--hostname localhost
format Não especifique este valor, uma vez que o único valor suportado é o valor predefinido, rest, para REST. Não é necessário, use a predefinição.
output Define o diretório onde a saída é escrita.
Predefinição: o diretório a partir do qual a ferramenta é invocada.
--output /mydir
-o /mydir

Plataformas de cliente suportadas

As seguintes plataformas são suportadas no pacote de cliente produzido pela ferramenta de linha de comandos do Frameworks de Endpoints:

Gerar um documento OpenAPI a partir de uma API

A ferramenta endpointscfg.py fornece um comando para gerar um documento OpenAPI a partir de um back-end de API. A sintaxe do comando é:

lib/endpoints/endpointscfg.py get_openapi_spec
    [-h]
    [-a APPLICATION]
    [--hostname HOSTNAME]
    [-o OUTPUT]
    service [service ...]

positional arguments:
  service               Fully qualified service class name.

optional arguments:
  -h, --help            Show this help message and exit.
  -a APPLICATION, --application APPLICATION
                        The path to the Python App Engine application.
  --hostname HOSTNAME   Default application hostname, if none is specified for the API service.
  -o OUTPUT, --output OUTPUT
                        The directory to store output files.
  --x-google-api-name   Add the 'x-google-api-name' field to the generated OpenAPI document.

Por exemplo, usando o exemplo echo:

$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json