Puedes generar conjuntos de bibliotecas cliente que les permitan a las aplicaciones acceder a tu API con la herramienta de línea de comandos de marcos de trabajo de Endpoints. Cuando generas una biblioteca cliente, la herramienta de línea de comandos de Endpoints Frameworks genera de forma automática un documento de descubrimiento que describe la superficie de tu API.
endpointscfg.py
, la herramienta de línea de comandos de Endpoints Frameworks, está disponible en la biblioteca de Endpoints Frameworks. Si quieres obtener más información sobre cómo instalar la biblioteca de Endpoints Frameworks con pip
, consulta la página en la que se describe cómo instalar la biblioteca de Endpoints Frameworks.
Ten en cuenta que, para usar los siguientes comandos, se da por sentado que instalaste la biblioteca de Endpoints Frameworks en un directorio llamado lib
. Además, en las instrucciones se da por sentado que creaste tu API de backend. Consulta el instructivo de Endpoints Frameworks para Python
a fin de obtener un ejemplo de cómo usar la herramienta de línea de comandos de Endpoints Frameworks en un código de ejemplo.
Genera un conjunto de bibliotecas cliente desde una API
Puedes usar la herramienta de línea de comandos de marcos de trabajo de Endpoints para generar los siguientes tipos de conjuntos de clientes:
Maven: este conjunto incluye un archivo
pom.xml
con las dependencias de los marcos de trabajo de Endpoints y de la biblioteca cliente de la API de Google. El archivoreadme.html
proporciona información detallada sobre lo que necesitas agregar a tu archivopom.xml
según los diferentes tipos de aplicaciones de cliente y cómo compilar una biblioteca cliente para tu API con Maven.Gradle: este conjunto incluye un archivo
build.gradle
con las dependencias de los marcos de trabajo de Endpoints y de la biblioteca cliente de la API de Google. El archivoreadme.html
proporciona información detallada sobre lo que necesitas agregar a tu archivobuild.gradle
según los diferentes tipos de aplicaciones cliente y cómo compilar una biblioteca cliente para tu API con Gradle.Conjunto de clientes predeterminado: este conjunto 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 conjunto le proporciona a tu cliente todas las capacidades de la biblioteca cliente de las API de Google, incluido OAuth. El archivoreadme.html
enumera los archivos.jar
necesarios para los diferentes tipos de aplicaciones cliente y otros detalles sobre el uso de la biblioteca cliente.
Si usas la biblioteca cliente con una app para Android, te recomendamos que uses un conjunto de clientes Gradle.
Generar la biblioteca cliente
Para generar la biblioteca cliente:
Cambia el directorio por el que contiene el archivo
app.yaml
y las clases de servicio de tu API. Como alternativa, puedes usar la opción--application
para especificar otra ubicación de tu directorio de la aplicación.Invoca la herramienta de línea de comandos de Endpoints Frameworks de manera similar a la siguiente:
lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
en la que
main
es la clase que contiene tu API yEchoApi
es el nombre de la API.Espera a que la herramienta genere la biblioteca cliente. Cuando esto se lleva a cabo de forma exitosa, la herramienta muestra un mensaje similar al siguiente:
API client library written to ./echo-v1.zip
Agrega el JAR de la biblioteca cliente a tu app para Android.
Repite los pasos anteriores cada vez que modifiques tu código de API.
El conjunto de la biblioteca cliente se escribe en el directorio actual, a menos que especifiques otro directorio de salida con la opción output
.
Sintaxis de la línea de comandos
La sintaxis básica se define de la siguiente manera:
/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME
Donde:
TARGET_LANG
especifica el tipo de conjunto de cliente que quieres crear. Por el momento, es obligatorio que proporciones el valorjava
(para clientes de Java como Android).OPTIONS
, si se proporciona, representa uno o más elementos que se muestran en la tabla OpcionesCLASS_NAME
es el nombre de clase completo de tu API.
Opciones
Puedes usar las siguientes opciones:
Nombre de la opción | Descripción | Ejemplo |
---|---|---|
application |
De forma predeterminada, la herramienta genera desde la API de backend en el directorio actual. Si deseas generar mediante un directorio diferente, especifica la ruta al directorio que contiene las clases de servicio y app.yaml que implementan tu API. |
--application /my_path/my_api_dir |
build-system |
Te permite especificar el tipo de conjunto de clientes se puede producir. Especifica gradle para un conjunto de clientes Gradle para Android, maven para un conjunto de clientes Maven o default (o puedes omitir esta opción) para un conjunto que contenga solo las bibliotecas de dependencias y el JAR fuente. |
--build-system=gradle -bs gradle |
hostname |
Especifica el documento de descubrimiento rootURL .Esta opción anula el valor predeterminado derivado de la entrada application dentro del proyecto de la API de backend app.yaml ([YOUR_APP_ID].appspot.com ) y el hostname definido en el decorador de tu API .Uno de los usos de esta opción es proporcionar el nombre de host localhost como rootURL para las pruebas locales. |
--hostname localhost |
format |
No especifiques esto porque el único valor admitido es el valor predeterminado, rest para REST. |
No se necesita. Usa el predeterminado. |
output |
Establece el directorio donde se escribe el resultado. Predeterminado: el directorio desde el que se invoca a la herramienta. |
--output /mydir -o /mydir |
Plataformas de cliente compatibles
Las siguientes plataformas son compatibles con el conjunto de clientes producido por la herramienta de línea de comandos de marcos de trabajo de Endpoints:
- Java 7 y superior:
- Android 1.6 y superior.
- App Engine.
Genera un documento de OpenAPI desde una API
La herramienta de endpointscfg.py
proporciona un comando para generar un documento de OpenAPI desde una API de backend. La sintaxis del comando es:
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, con el ejemplo de echo
:
$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json