

# Habilitar la integración simulada a través de la consola de API Gateway
<a name="how-to-mock-integration-console"></a>

Debe tener un método disponible en API Gateway. Siga las instrucciones en [Tutorial: Creación de una API de REST con integración no de proxy HTTP](api-gateway-create-api-step-by-step.md).

1. Elija un recurso de API y seleccione **Crear método**.

   Para configurar el método, haga lo siguiente:

   1. En **Tipo de método**, seleccione un método. 

   1. En **Tipo de integración**, seleccione **Simulación**.

   1. Elija **Crear método**. 

   1. En la pestaña **Solicitud de método**, en **Configuración de solicitud de método**, elija **Editar**.

   1. Elija **Parámetros de cadenas de consulta de URL**. Elija **Añadir cadena de consulta** y, en **Nombre**, introduzca **scope**. Este parámetro de consulta determina si el intermediario es o no interno.

   1. Seleccione **Save**.

1. En la pestaña **Respuesta de método**, elija **Crear respuesta** y, a continuación, haga lo siguiente:

   1. En **Estado HTTP**, escriba **500**.

   1. Seleccione **Save**.

1. En la pestaña **Solicitud de integración**, en **Configuración de la solicitud de integración**, seleccione **Editar**.

1. Elija **Plantillas de mapeo** y, a continuación, haga lo siguiente:

   1. Elija **Add mapping template (Añadir plantilla de asignación)**.

   1. En **Tipo de contenido**, ingrese **application/json**. 

   1. En **Cuerpo de la plantilla**, introduzca lo siguiente:

      ```
      {
        #if( $input.params('scope') == "internal" )
          "statusCode": 200
        #else
          "statusCode": 500
        #end
      }
      ```

   1. Seleccione **Save**.

1. En la pestaña **Respuesta de integración**, en **Predeterminado: respuesta**, elija **Editar**.

1. Elija **Plantillas de mapeo** y, a continuación, haga lo siguiente:

   1. En **Tipo de contenido**, ingrese **application/json**. 

   1. En **Cuerpo de la plantilla**, introduzca lo siguiente:

      ```
      {
          "statusCode": 200,
          "message": "Go ahead without me"
      }
      ```

   1. Seleccione **Save**.

1. Elija **Crear respuesta**.

   Para crear una respuesta 500, haga lo siguiente:

   1. En **Expresión regular de estado de HTTP**, escriba **5\$1d\$12\$1**. 

   1. En **Estado de respuesta del método**, seleccione **500**.

   1. Seleccione **Save**.

   1. En **5\$1d\$12\$1 - Respuesta**, seleccione **Editar**. 

   1. Elija **Plantillas de mapeo** y, a continuación, elija **Agregar plantilla de mapeo**.

   1. En **Tipo de contenido**, ingrese **application/json**. 

   1. En **Cuerpo de la plantilla**, introduzca lo siguiente:

      ```
      {
          "statusCode": 500,
          "message": "The invoked method is not supported on the API resource."
      }
      ```

   1. Seleccione **Save**.

1.  Elija la pestaña **Prueba**. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña. Para probar la integración simulada, haga lo siguiente:

   1. Escriba `scope=internal` en **Cadenas de consulta**. Seleccione **Probar** El resultado de la prueba es:

      ```
      Request: /?scope=internal
      Status: 200
      Latency: 26 ms
      Response Body
      
      {
        "statusCode": 200,
        "message": "Go ahead without me"
      }
      
      Response Headers
      
      {"Content-Type":"application/json"}
      ```

   1. Escriba `scope=public` en `Query strings` o déjelo en blanco. Seleccione **Probar** El resultado de la prueba es:

      ```
      Request: /
      Status: 500
      Latency: 16 ms
      Response Body
      
      {
        "statusCode": 500,
        "message": "The invoked method is not supported on the API resource."
      }
      
      Response Headers
      
      {"Content-Type":"application/json"}
      ```

También puede devolver los encabezados de una respuesta de integración simulada agregando primero un encabezado a la respuesta del método y configurando después una asignación de encabezado en la respuesta de integración. De hecho, es así como la consola de API Gateway permite la compatibilidad con CORS, devolviendo los encabezados requeridos por CORS.