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 ficheiroreadme.html
fornece informações detalhadas sobre o que tem de adicionar ao ficheiropom.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 ficheiroreadme.html
fornece informações detalhadas sobre o que tem de adicionar ao ficheirobuild.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 ficheiroreadme.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:
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.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 eEchoApi
é o nome da sua API.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
Adicione o JAR da biblioteca cliente à sua app Android.
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 valorjava
(para clientes Java, como o Android).OPTIONS
, se fornecido, é um ou mais itens apresentados na tabela de opçõesCLASS_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:
- Java 7 e superior:
- Android 1.6 e superior.
- App Engine.
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