Adicionando Respostas Padrão como um Back-End de Serviço API Gateway
Descubra como definir um caminho para um back-end de resposta padrão com o API Gateway.
Com frequência, você precisará verificar se uma API foi implantada com sucesso em um gateway de API sem ter de configurar um serviço de back-end real. Uma abordagem é definir uma rota na especificação de implantação de API que tenha um caminho para um back-end 'fictício'. Ao receber uma solicitação para esse caminho, o gateway de API em si age como o back-end e retorna uma resposta padrão que você especificou.
Igualmente, há algumas situações em uma implantação de produção em que você quer que um caminho específico para uma rota retorne consistentemente a mesma resposta padrão sem enviar uma solicitação a um back-end. Por exemplo, quando você quiser que uma chamada de um caminho sempre retorne um código de status HTTP específico na resposta.
Usando o serviço API Gateway, você pode definir um caminho para um back-end de resposta padrão que sempre retorna o mesmo:
- Código de status HTTP
- Campos do cabeçalho HTTP (pares nome-valor)
- conteúdo no corpo da resposta
Observe as seguintes restrições ao definir respostas padrão e back-ends de resposta padrão:
- cada nome de cabeçalho não deve exceder 1 KB de comprimento
- cada valor de cabeçalho não deve exceder 4 KB de comprimento
- cada resposta do corpo não deve exceder 5 KB (incluindo qualquer codificação)
- uma definição de back-end de resposta padrão não deve incluir mais de 50 campos de cabeçalho
Você pode adicionar back-ends de resposta padrão a uma especificação de implantação de API:
- usando a Console
- editando um arquivo JSON
Usando a Console para Adicionar Respostas Padrão a uma Especificação de Implantação de API
Para adicionar respostas padrão a uma especificação de implantação de API usando a Console:
- 
Crie ou atualize uma implantação de API usando a Console. Selecione a opção Totalmente Nova e insira os detalhes na página Informações Básicas. Para obter mais informações, consulte Implantando uma API em um Gateway de API por meio da Criação de uma Implantação de API e Atualizando um Gateway de API. 
- 
Na página Autenticação, especifique opções de autenticação. Para obter mais informações sobre opções de autenticação, consulte Adicionando Autenticação e Autorização às Implantações de API. 
- 
Na página Rotas, crie uma nova rota e especifique: - 
Caminho: Um caminho para chamadas de API usando os métodos listados para o serviço de back-end. Observe que o caminho da rota que você especificar: - é relativo ao prefixo do caminho de implantação (consulte Implantando uma API em um Gateway de API por meio da Criação de uma Implantação de API)
- deve ser precedido por uma barra ( / ) e pode ser apenas uma barra
- pode conter várias barras (desde que elas não sejam adjacentes) e pode terminar com uma barra
- pode incluir caracteres alfanuméricos maiúsculos e minúsculos
- pode incluir os caracteres especiais $ - _ . + ! * ' ( ) , % ; : @ & =
- pode incluir parâmetros e curingas (consulte Adicionando Parâmetros de Caminho e Curingas a Caminhos de Rota)
 
- Métodos: Um ou mais métodos aceitos pelo serviço de back-end. Por exemplo, GET, PUT.
- 
Adicionar um único backend ou Adicionar vários backends: Se todas as solicitações devem ser roteadas para o mesmo back-end ou para rotear solicitações para diferentes back-ends de acordo com a variável de contexto e as regras informadas. Essas instruções pressupõem que você deseja usar um único back-end; portanto, selecione Adicionar um único backend. Como alternativa, se você quiser usar back-ends diferentes, selecione Adicionar vários back-ends e siga as instruções em Usando a Console para Adicionar Seleção de Back-End Dinâmico a uma Especificação de Implantação de API. 
- Tipo de Backend: O tipo do serviço de back-end como Stock Response.
- Código de Status: Qualquer código de resposta HTTP válido. Por exemplo, 200
- 
Corpo: Como opção, especifica o conteúdo do corpo da resposta em um formato apropriado. Por exemplo: -  Se você especificar um Nome do Cabeçalho e Valor do Cabeçalho de Content-Typeetext/plainrespectivamente, o corpo da resposta poderá ser"Hello world".
- Se você especificar um Nome do Cabeçalho e Valor do Cabeçalho de Content-Typeeapplication/jsonrespectivamente, o corpo da resposta poderá ser{"username": "john.doe"}.
 Observe que o corpo da resposta não deve exceder 5 KB (incluindo qualquer codificação). 
-  Se você especificar um Nome do Cabeçalho e Valor do Cabeçalho de 
- 
Nome do Cabeçalho e Valor do Cabeçalho: Opcionalmente, você pode especificar o nome de um cabeçalho de resposta HTTP e seu valor. Por exemplo, um nome de Content-Typee um valor deapplication/json. Você pode especificar vários pares de nome e valor de cabeçalho (até um máximo de 50). Observe que, em cada caso:- o nome de cabeçalho não deve exceder 1 KB de tamanho
- o valor do cabeçalho não deve exceder 4 KB de tamanho
 
 Neste exemplo, uma solicitação para o caminho /testretorna um código de status 200 e um payload JSON no corpo da resposta.Campo: Informe: Caminho: /testMétodos: GETTipo de Back-end: Stock ResponseCódigo do Status: 200Corpo: {"username": "john.doe"}Nome do Cabeçalho: Content-TypeValor do Cabeçalho: application/jsonNeste exemplo, uma solicitação ao caminho /test-redirectretorna um código de status 302 e um url temporário no cabeçalhoLocationda resposta.Campo: Informe: Caminho: /test-redirectMétodos: GETTipo de Back-end: Stock ResponseCódigo do Status: 302Corpo: n/d Nome do Cabeçalho: LocationValor do Cabeçalho: http://www.example.com
- 
- (Opcional) Selecione Outra Rota para inserir detalhes de rotas adicionais.
- Selecione Próximo para revisar os detalhes informados para a implantação de API.
- Selecione Criar ou Salvar Alterações para criar ou atualizar a implantação de API.
- (Opcional) Confirme se a API foi implantada com êxito, chamando-a (consulte Chamando uma API Implantada em um Gateway de API).
Editando um Arquivo JSON para Adicionar Respostas Padrão a uma Especificação de Implantação de API
Para adicionar respostas padrão a uma especificação de implantação de API em um arquivo JSON:
- 
Usando seu editor de JSON preferido, edite a especificação de implantação de API existente à qual você deseja adicionar um back-end de resposta padrão ou crie uma nova especificação de implantação de API (consulte Criando uma Especificação de Implantação de API). Por exemplo, a seguinte especificação básica de implantação de API define uma função simples sem servidor Hello World no OCI Functions como um único back-end: { "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
- 
Na seção routes, inclua uma nova seçãopathpara um back-end de resposta padrão:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "<api-route-path>", "methods": ["<method-list>"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": <http-response-code>, "headers": [{ "name": "<header-name>", "value": "<header-value>" }], "body": "<body-content>" } } ] }em que: - 
<api-route-path>especifica um caminho para chamadas de API usando os métodos listados para o back-end de resposta padrão. Observe que o caminho da rota que você especificar:- é relativo ao prefixo do caminho de implantação (consulte Implantando uma API em um Gateway de API por meio da Criação de uma Implantação de API)
- deve ser precedido por uma barra ( / ) e pode ser apenas uma barra
- pode conter várias barras (desde que elas não sejam adjacentes) e pode terminar com uma barra
- pode incluir caracteres alfanuméricos maiúsculos e minúsculos
- pode incluir os caracteres especiais $ - _ . + ! * ' ( ) , % ; : @ & =
- 
pode incluir parâmetros e curingas (consulte Adicionando Parâmetros de Caminho e Curingas a Caminhos de Rota) 
 
- <method-list>especifica um ou mais métodos aceitos pelo back-end de resposta padrão, separados por vírgulas. Por exemplo,- GET, PUT.
- "type": "STOCK_RESPONSE_BACKEND"indica que o próprio gateway de API atuará como o back-end e retornará a resposta padrão definida por você (o código de status, os campos de cabeçalho e o conteúdo do corpo).
- <http-response-code>é qualquer código de resposta HTTP válido. Por exemplo,- 200
- "name": "<header-name>", "value": "<header-value>"especifica opcionalmente o nome de um cabeçalho de resposta HTTP e seu valor. Por exemplo,- "name": "Content-Type", "value":"application/json". Você pode especificar vários pares- "name": "<header-name>", "value": "<header-value>"na seção- headers:(até um máximo de 50). Observe que, em cada caso:- <header-name>não deve exceder 1 KB de tamanho
- <header-value>não deve exceder 4 KB de tamanho
 
- "body": "<body-content>"especifica opcionalmente o conteúdo do corpo da resposta, em um formato apropriado. Por exemplo:-  Se o cabeçalho Content-Typefortext/plain, o corpo da resposta poderá ser"body": "Hello world".
-  Se o cabeçalho Content-Typeforapplication/json, o corpo da resposta poderá ser"body": "{\"username\": \"john.doe\"}". No caso de uma resposta JSON, observe que as aspas na resposta devem ter escape com um caractere de barra invertida (\).
 - Observe que - <body-content>não deve exceder 5 KB (incluindo qualquer codificação).
-  Se o cabeçalho 
 Neste exemplo, uma solicitação para o caminho /testretorna um código de status 200 e um payload JSON no corpo da resposta.{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "/test", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 200, "headers": [{ "name": "Content-Type", "value": "application/json" }], "body" : "{\"username\": \"john.doe\"}" } } ] }Neste exemplo, uma solicitação ao caminho /test-redirectretorna um código de status 302 e um url temporário no cabeçalhoLocationda resposta. Este exemplo também demonstra que você pode criar uma especificação de implantação de API com apenas uma rota para um back-end do tipo STOCK_RESPONSE_BACKEND.{ "routes": [ { "path": "/test-redirect", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 302, "headers": [{ "name": "Location", "value": "http://www.example.com" }] } } ] }
- 
- Salve o arquivo JSON que contém a especificação de implantação de API.
- 
Use a especificação de implantação de API ao criar ou atualizar uma implantação de API das seguintes formas: - especificando o arquivo JSON na Console quando você selecionar a opção Carregar uma API existente
- especificando o arquivo JSON em uma solicitação à API REST do serviço API Gateway
 Para obter mais informações, consulte Implantando uma API em um Gateway de API por meio da Criação de uma Implantação de API e Atualizando um Gateway de API. 
- (Opcional) Confirme se a API foi implantada com êxito, chamando-a (consulte Chamando uma API Implantada em um Gateway de API).