Puedes generar paquetes de bibliotecas de cliente que permitan a las aplicaciones acceder a tu API mediante la herramienta de línea de comandos de Endpoints Frameworks. Cuando generas una biblioteca de cliente, la herramienta de línea de comandos de Endpoints Frameworks genera automáticamente un documento de descubrimiento que describe la superficie de tu API.
La herramienta de línea de comandos de Endpoints Frameworks,endpointscfg.py
está disponible en la biblioteca de Endpoints Frameworks. Para obtener información sobre cómo instalar la biblioteca de Endpoints Frameworks con pip
, consulta Instalar la biblioteca de Endpoints Frameworks.
Ten en cuenta que los siguientes comandos presuponen que has instalado la biblioteca Endpoints Frameworks en un directorio llamado lib
. Además, en las instrucciones se da por hecho que ya has creado tu API backend. Consulta el tutorial de Endpoints Frameworks para Python para ver un ejemplo de uso de la herramienta de línea de comandos de Endpoints Frameworks en código de ejemplo.
Generar un paquete de biblioteca de cliente a partir de una API
Puedes usar la herramienta de línea de comandos de Endpoints Frameworks para generar los siguientes tipos de paquetes de cliente:
Maven: este paquete incluye un archivo
pom.xml
con las dependencias de Endpoints Frameworks y de la biblioteca de cliente de la API de Google. El archivoreadme.html
proporciona información detallada sobre lo que debes añadir al archivopom.xml
para diferentes tipos de aplicaciones cliente y sobre cómo compilar una biblioteca de cliente para tu API con Maven.Gradle: este paquete incluye un archivo
build.gradle
con las dependencias de Endpoints Frameworks y de la biblioteca de cliente de la API de Google. El archivoreadme.html
proporciona información detallada sobre lo que debes añadir al archivobuild.gradle
para diferentes tipos de aplicaciones cliente y sobre cómo compilar una biblioteca de cliente para tu API con Gradle.Paquete de cliente predeterminado: este paquete contiene todas las bibliotecas de dependencias y el archivo
source.jar
generado, que es la biblioteca de Java que usas en tu cliente para llamar a tu API. Este paquete proporciona a tu cliente todas las funciones de la biblioteca de cliente de la API de Google, incluido OAuth. El archivoreadme.html
enumera los archivos.jar
que se necesitan para los distintos tipos de aplicaciones cliente y otros detalles para usar la biblioteca de cliente.
Si utilizas la biblioteca de cliente con una aplicación Android, te recomendamos que uses un paquete de cliente de Gradle.
Generar la biblioteca de cliente
Para generar la biblioteca de cliente, sigue estos pasos:
Cambia al directorio que contiene el archivo
app.yaml
de tu API y las clases de servicio de la API. También puedes usar la opción--application
para especificar otra ubicación del directorio de tu aplicación.Invoca la herramienta de línea de comandos de Endpoints Frameworks de forma similar a la siguiente:
lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
donde
main
es la clase que contiene tu API yEchoApi
es el nombre de tu API.Espera a que la herramienta genere la biblioteca de cliente. Si se genera correctamente, la herramienta mostrará un mensaje similar a este:
API client library written to ./echo-v1.zip
Añade el archivo JAR de la biblioteca de cliente a tu aplicación Android.
Repita los pasos anteriores cada vez que modifique el código de la API.
El paquete de la biblioteca de cliente se escribe en el directorio actual, a menos que especifiques otro directorio de salida con la opción output
.
Sintaxis de línea de comandos
La sintaxis básica es la siguiente:
/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME
donde:
TARGET_LANG
especifica el tipo de paquete de cliente que quieres crear. Actualmente, debe proporcionar el valorjava
(para clientes de Java, como Android).OPTIONS
, si se proporciona, es uno o varios elementos que se muestran en la tabla de opciones.CLASS_NAME
es el nombre de clase completo de tu API.
Opciones
Puedes utilizar las siguientes opciones:
Nombre de la opción | Descripción | Ejemplo |
---|---|---|
application |
De forma predeterminada, la herramienta genera la API de backend en el directorio actual. Si quieres generar la API con otro directorio, especifica la ruta al directorio que contiene las clases app.yaml y de servicio que implementan tu API. |
--application /my_path/my_api_dir |
build-system |
Permite especificar qué tipo de paquete de cliente se debe generar. Especifica gradle para un paquete de cliente de Gradle para Android, maven para un paquete de cliente de Maven o default (o simplemente omite esta opción) para un paquete que solo contenga las bibliotecas de dependencias y el archivo JAR de origen. |
--build-system=gradle -bs gradle |
hostname |
Especifica el documento de descubrimiento rootURL .Esta opción anula el valor predeterminado derivado de la entrada application del proyecto de API de backend app.yaml ([YOUR_APP_ID].appspot.com ) y el hostname definido en el decorador de tu API.Una de las aplicaciones de esta opción es proporcionar el nombre de host localhost como rootURL para las pruebas locales. |
--hostname localhost |
format |
No especifiques este valor, ya que el único valor admitido es el predeterminado, rest para REST. |
No es necesario, usa el valor predeterminado. |
output |
Define el directorio en el que se escribe la salida. Valor predeterminado: el directorio desde el que se invoca la herramienta. |
--output /mydir -o /mydir |
Plataformas de cliente admitidas
Las siguientes plataformas son compatibles con el paquete de cliente generado por la herramienta de línea de comandos de Endpoints Frameworks:
- Java 7 y versiones posteriores:
- Android 1.6 y versiones posteriores.
- App Engine.
Generar un documento de OpenAPI a partir de una API
La herramienta endpointscfg.py
proporciona un comando para generar un documento de OpenAPI a partir de un backend de API. La sintaxis del comando es la siguiente:
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 ejemplo, si usamos el ejemplo de echo
:
$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json