Cloud Endpoints Frameworks para la herramienta de línea de comandos de App Engine

En esta página, se describe cómo usar la herramienta de línea de comandos de Endpoints Frameworks a fin de generar una biblioteca cliente desde tu API de backend para Python (el código que se ejecuta en el servidor). Cualquier app para Android o Java puede usar esta biblioteca a fin de llamar a la API.

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 archivo readme.html proporciona información detallada sobre lo que necesitas agregar a tu archivo pom.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 archivo readme.html proporciona información detallada sobre lo que necesitas agregar a tu archivo build.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 archivo readme.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:

  1. 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.

  2. 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 y EchoApi es el nombre de la API.

  3. 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
    
  4. Agrega el JAR de la biblioteca cliente a tu app para Android.

  5. 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 valor java (para clientes de Java como Android).
  • OPTIONS, si se proporciona, representa uno o más elementos que se muestran en la tabla Opciones
  • CLASS_NAME es el nombre de clase completo de tu API.

Opciones

Puede utilizar 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:

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