

# Exportación de una API REST desde API Gateway
<a name="api-gateway-export-api"></a>

 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) 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](https://www.postman.com), 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
<a name="api-gateway-export-api-request"></a>

 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](https://docs.aws.amazon.com/apigateway/latest/api/API_GetExport.html). 

**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
<a name="api-gateway-export-api-download-swagger-json"></a>

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 conexión](https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region). 

## Descarga de la definición de OpenAPI de la API de REST en YAML
<a name="api-gateway-export-api-download-swagger-yaml"></a>

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
<a name="api-gateway-export-api-download-swagger-json-with-postman"></a>

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
<a name="api-gateway-export-api-download-swagger-yaml-with-apig"></a>

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
<a name="api-gateway-export-api-from-console"></a>

Después de [implementar la API REST en una etapa](set-up-deployments.md#create-deployment), 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\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/export-new-console.png)


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