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.xmlcon las dependencias de Endpoints Frameworks y de la biblioteca de cliente de la API de Google. El archivo- readme.htmlproporciona información detallada sobre lo que debes añadir al archivo- pom.xmlpara 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.gradlecon las dependencias de Endpoints Frameworks y de la biblioteca de cliente de la API de Google. El archivo- readme.htmlproporciona información detallada sobre lo que debes añadir al archivo- build.gradlepara 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.jargenerado, 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 archivo- readme.htmlenumera los archivos- .jarque 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.yamlde tu API y las clases de servicio de la API. También puedes usar la opción- --applicationpara 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 - maines la clase que contiene tu API y- EchoApies 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_LANGespecifica el tipo de paquete de cliente que quieres crear. Actualmente, debe proporcionar el valor- java(para clientes de Java, como Android).
- OPTIONS, si se proporciona, es uno o varios elementos que se muestran en la tabla de opciones.
- CLASS_NAMEes 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.yamly 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 gradlepara un paquete de cliente de Gradle para Android,mavenpara un paquete de cliente de Maven odefault(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 applicationdel proyecto de API de backendapp.yaml([YOUR_APP_ID].appspot.com) y elhostnamedefinido en el decorador de tu API.Una de las aplicaciones de esta opción es proporcionar el nombre de host localhostcomo rootURL para las pruebas locales. | --hostname localhost | 
| format | No especifiques este valor, ya que el único valor admitido es el predeterminado, restpara 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