

# Configuración de una respuesta de método en API Gateway
<a name="api-gateway-method-settings-method-response"></a>

Una respuesta de método de API encapsula el resultado de una solicitud de método de API que el cliente recibirá. Los datos de salida incluyen un código de estado HTTP, algunos encabezados y posiblemente un cuerpo. 

Con las integraciones que no sean de proxy, los parámetros de respuesta especificados y el cuerpo se pueden asignar desde los datos de respuesta de integración asociados o se les pueden asignar determinados valores estáticos según las asignaciones. Estas asignaciones se especifican en la respuesta de integración. La asignación puede ser una transformación idéntica que transfiere la respuesta de integración tal y como es.

Con una integración de proxy, API Gateway transfiere la respuesta del backend a la respuesta del método automáticamente. No es necesario configurar la respuesta del método de API. Sin embargo, con la integración proxy de Lambda, la función de Lambda debe devolver un resultado de [este formato de salida](set-up-lambda-proxy-integrations.md#api-gateway-simple-proxy-for-lambda-output-format) para que API Gateway asigne correctamente la respuesta de integración a una respuesta de método. 

Mediante programación, la configuración de la respuesta de método equivale a crear un recurso [MethodResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html) de API Gateway y a establecer las propiedades de [statusCode](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#statusCode), [responseParameters](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseParameters) y [responseModels](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseModels). 

Al establecer códigos de estado para un método de API, debe elegir uno como predeterminado para gestionar cualquier respuesta de integración de un código de estado no previsto. Es razonable establecer `500` como predeterminado, ya que esto equivale a emitir respuestas que de otro modo no estarían asignadas como un error del servidor. Por motivos de instrucción, la consola de API Gateway establece la respuesta `200` como la opción predeterminada. Pero puede restablecerla en la respuesta `500`. 

Para configurar una respuesta de método, debe haber creado la solicitud de método. 

## Configurar el código de estado de la respuesta de método
<a name="setup-method-response-status-code"></a>

El código de estado de una respuesta de método define un tipo de respuesta. Por ejemplo, las respuestas de 200, 400 y 500 indican respuestas de éxito, de error del lado del cliente y de error del lado del servidor, respectivamente. 

Para configurar un código de estado de respuesta de método, establezca la propiedad [https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#statusCode](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#statusCode) en un código de estado HTTP. El siguiente comando [put-method-response](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method-response.html) permite crear la respuesta del método `200`.

```
aws apigateway put-method-response \
    --rest-api-id vaz7da96z6 \ 
    --resource-id 6sxz2j \
    --http-method GET \
    --status-code 200
```

## Configurar parámetros de respuesta de métodos
<a name="setup-method-response-parameters"></a>

Los parámetros de respuesta de método definen qué encabezados recibe el cliente en respuesta a la solicitud de método asociado. Los parámetros de respuesta también especifican un objetivo al que API Gateway asigna un parámetro de respuesta de integración, según los mapeos prescritos en la respuesta de integración del método de la API. 

Para configurar los parámetros de respuesta de método, agregue al mapa [https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseParameters](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseParameters) de `MethodResponse` pares de clave-valor con el formato `"{parameter-name}":"{boolean}"`. El siguiente comando [put-method-response](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method-response.html) permite establecer el encabezado `my-header`.

```
aws apigateway put-method-response \
        --rest-api-id vaz7da96z6 \
        --resource-id 6sxz2j \
        --http-method GET \
        --status-code 200  \
        --response-parameters method.response.header.my-header=false
```

## Configurar modelos de respuesta de método
<a name="setup-method-response-models"></a>

 

 Un modelo de respuesta de método define un formato del cuerpo de la respuesta del método. Es necesario configurar un modelo de respuesta de método al generar un SDK con establecimiento inflexible de tipos para la API. Garantiza que el resultado se emite en una clase apropiada en Java u Objective-C. En otros casos, la configuración de un modelo es opcional.

Antes de configurar el modelo de respuesta, primero debe crear el modelo en API Gateway. Para ello, puede llamar al comando `[create-model](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-model.html)`. El siguiente comando [create-model](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-model.html) permite crear un modelo `PetStorePet` para describir el cuerpo de la respuesta para la solicitud del método `GET /pets/{petId}`.

```
aws apigateway create-model \
    --rest-api-id vaz7da96z6 \
    --content-type application/json \
    --name PetStorePet \
    --schema '{ \
                  "$schema": "http://json-schema.org/draft-04/schema#", \
                  "title": "PetStorePet", \
                  "type": "object", \
                  "properties": { \
                    "id": { "type": "number" }, \
                    "type": { "type": "string" }, \
                    "price": { "type": "number" } \
                  } \
              }'
```

El resultado se crea como un recurso [https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html](https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html) de API Gateway.

Para configurar los modelos de respuesta de método para definir el formato de la carga, agregue el par de clave-valor "application/json":"PetStorePet" al mapa [https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseModels](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html#responseModels) del recurso [https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html). El siguiente comando [put-method-response](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method-response.html) permite crear un método de respuesta que utilice un modelo de respuesta para definir el formato de carga útil: 

```
aws apigateway put-method-response \
    --rest-api-id vaz7da96z6 \
    --resource-id 6sxz2j \
    --http-method GET \
    --status-code 200  \
    --response-parameters method.response.header.my-header=false \
    --response-models '{"application/json":"PetStorePet"}'
```