Exportación de una API REST desde API Gateway - Amazon API Gateway

Exportación de una API REST desde API Gateway

Una vez que haya creado y configurado una API REST en API Gateway mediante la consola de API Gateway o de otra forma, puede exportarla a un archivo de OpenAPI mediante la característica Exportar API de API Gateway, que forma parte del servicio de control de Amazon API Gateway. Para usar la API de exportación de API Gateway, debe firmar sus solicitudes de API. Para obtener más información sobre la firma de solicitudes, consulte Firma de solicitudes de AWS en la Guía del usuario de IAM. Dispone de opciones para incluir las extensiones de integración de API Gateway, así como las extensiones Postman, en el archivo de definición de OpenAPI exportado.

nota

Al exportar la API utilizando la AWS CLI, asegúrese de incluir el parámetro de la extensión tal y como se muestra en el siguiente ejemplo, para garantizar que se incluye la extensión x-amazon-apigateway-request-validator:

aws apigateway get-export --parameters extensions='apigateway' --rest-api-id abcdefg123 --stage-name dev --export-type swagger latestswagger2.json

No puede exportar una API si sus cargas no son del tipo application/json. Si lo intenta, obtendrá una respuesta de error en la que se indica que no se encuentran los modelos del cuerpo JSON.

Solicitud de exportación de una API de REST

Con la API Export, puede exportar una API de REST existente enviando una solicitud GET en la que se especifique la API que se va exportar como parte de las rutas URL. La URL de la solicitud debe tener el siguiente formato:

OpenAPI 3.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/oas30
OpenAPI 2.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/swagger

Puede asociar la cadena de consulta extensions para especificar si desea incluir extensiones de API Gateway (con el valor integration) o extensiones de Postman (con el valor postman).

Además, puede establecer el encabezado Accept en application/json o application/yaml para recibir la salida de la definición de la API en formato JSON o YAML, respectivamente.

Para obtener más información sobre cómo enviar solicitudes GET utilizando la función Exportar API de API Gateway, consulte GetExport.

nota

Si define modelos en la API, deben ser para el tipo de contenido de "application/json" para que API Gateway pueda exportar el modelo. De lo contrario, API Gateway produce una excepción con el mensaje de error "Only found non-JSON body models for ...".

Los modelos deben contener propiedades o definirse como un tipo de JSONSchema determinado.

Descarga de la definición de OpenAPI de la API de REST en JSON

Para exportar y descargar una API de REST en definiciones de OpenAPI con formato JSON:

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/json

Aquí, <region> podría ser, por ejemplo, us-east-1. Para todas las regiones donde API Gateway está disponible, consulte Regiones y puntos de enlace

Descarga de la definición de OpenAPI de la API de REST en YAML

Para exportar y descargar una API de REST en definiciones de OpenAPI con formato YAML:

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/yaml

Descarga de la definición de OpenAPI de la API de REST con extensiones Postman en JSON

Para exportar y descargar una API de REST en definiciones de OpenAPI con Postman en formato JSON:

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json

Descarga de la definición de OpenAPI de la API REST con la integración de API Gateway en YAML

Para exportar y descargar una API REST en definiciones de OpenAPI con la integración de API Gateway en formato YAML:

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml

Exportar API REST con la consola de API Gateway

Después de implementar la API REST en una etapa, puede empezar a exportar la API en la etapa a un archivo de OpenAPI mediante la consola de API Gateway.

En el panel Etapas de la consola de API Gateway, elija Acciones de etapa, Exportar.

Exportar API REST con la consola de API Gateway

Especifique un Tipo de especificación de API, Formato y Extensiones para descargar la definición de OpenAPI de la API.