

# Ativar a integração simulada usando o console do API Gateway
<a name="how-to-mock-integration-console"></a>

É necessário ter o método disponível no API Gateway. Siga as instruções em [Tutorial: Crie uma API REST com uma integração de não proxy de HTTP](api-gateway-create-api-step-by-step.md).

1. Selecione um recurso de API e **Criar método**.

   Para configurar o método, faça o seguinte:

   1. Em **Tipo de método**, selecione um método. 

   1. Em **Tipo de integração**, selecione **Simulação**.

   1. Escolha **Criar método**. 

   1. Na guia **Solicitação de método**, em **Configurações de solicitação de método**, selecione **Editar**.

   1. Selecione **Parâmetros de string de consulta de URL**. Selecione **Adicionar string de consulta** e, em **Nome**, insira **scope**. Esse parâmetro de consulta determina se o autor da chamada é interno ou não.

   1. Escolha **Salvar**.

1. Na guia **Resposta do método**, selecione **Criar resposta** e faça o seguinte:

   1. Em **Status HTTP**, insira **500**.

   1. Escolha **Salvar**.

1. Na guia **Solicitação de integração**, em **Configurações de solicitação de integração**, selecione **Editar**.

1. Selecione **Modelos de mapeamento** e, depois, faça o seguinte:

   1. Escolha **Add mapping template** (Adicionar modelo de mapeamento).

   1. Em **Tipo de conteúdo**, insira **application/json**. 

   1. Em **Corpo do modelo**, insira o seguinte:

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

   1. Escolha **Salvar**.

1. Na guia **Resposta de integração**, em **Padrão - Resposta**, selecione **Editar**.

1. Selecione **Modelos de mapeamento** e, depois, faça o seguinte:

   1. Em **Tipo de conteúdo**, insira **application/json**. 

   1. Em **Corpo do modelo**, insira o seguinte:

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

   1. Escolha **Salvar**.

1. Selecione **Criar resposta**.

   Para criar uma resposta 500, faça o seguinte:

   1. Em **HTTP status regex (Regex de status HTTP)**, insira **5\\d{2}**. 

   1. Em **Status de resposta do método**, selecione **500**.

   1. Escolha **Salvar**.

   1. Em **5\\d{2} - Resposta**, selecione **Editar**. 

   1. Selecione **Modelos de mapeamento** e, depois, **Adicionar modelo de mapeamento**.

   1. Em **Tipo de conteúdo**, insira **application/json**. 

   1. Em **Corpo do modelo**, insira o seguinte:

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

   1. Escolha **Salvar**.

1.  Selecione a guia **Testar**. Talvez seja necessário selecionar o botão de seta para a direita para mostrar a guia. Para testar a integração simulada, faça o seguinte:

   1. Digite `scope=internal` em **Strings de consulta**. Escolha **Test** (Testar). O resultado do teste mostra:

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

   1. Digite `scope=public` em `Query strings` ou deixe em branco. Escolha **Test** (Testar). O resultado do teste mostra:

      ```
      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"}
      ```

Você também pode retornar os cabeçalhos em uma resposta de integração simulada, adicionando primeiro um cabeçalho à resposta de método e, em seguida, configurando um mapeamento de cabeçalho na resposta de integração. Na verdade, é assim que o console do API Gateway permite o suporte a CORS ao retornar os cabeçalhos necessários do CORS.