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-Type
etext/plain
respectivamente, o corpo da resposta poderá ser"Hello world"
. - Se você especificar um Nome do Cabeçalho e Valor do Cabeçalho de
Content-Type
eapplication/json
respectivamente, 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-Type
e 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
/test
retorna um código de status 200 e um payload JSON no corpo da resposta.Campo: Informe: Caminho: /test
Métodos: GET
Tipo de Back-end: Stock Response
Código do Status: 200
Corpo: {"username": "john.doe"}
Nome do Cabeçalho: Content-Type
Valor do Cabeçalho: application/json
Neste exemplo, uma solicitação ao caminho
/test-redirect
retorna um código de status 302 e um url temporário no cabeçalhoLocation
da resposta.Campo: Informe: Caminho: /test-redirect
Métodos: GET
Tipo de Back-end: Stock Response
Código do Status: 302
Corpo: n/d Nome do Cabeçalho: Location
Valor 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çãopath
para 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çãoheaders:
(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-Type
fortext/plain
, o corpo da resposta poderá ser"body": "Hello world"
. - Se o cabeçalho
Content-Type
forapplication/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
/test
retorna 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-redirect
retorna um código de status 302 e um url temporário no cabeçalhoLocation
da 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).