Adicionando um URL HTTP ou HTTPS como um Back-End do Serviço API Gateway
Descubra como criar uma implantação de API para acessar URLs HTTP e HTTPS com o Gateway de API.
Um requisito comum é criar uma API com o URL HTTP ou HTTPS de um serviço de back-end e um gateway de API que fornece acesso de front-end ao URL de back-end.
Tendo usado o serviço API Gateway para criar um gateway de API, você pode criar uma implantação de API para acessar URLs HTTP e HTTPS.
O URL HTTP ou HTTPS especificado para o serviço de back-end pode ser:
- O URL de um serviço que está disponível publicamente na internet.
- O URL de um serviço do Oracle Cloud Infrastructure (por exemplo, OCI Functions).
- O URL de um serviço em sua própria rede privada ou interna (por exemplo, conectado à VCN pelo FastConnect).
O URL fornecido na especificação de implantação da API para identificar o serviço de back-end de HTTP ou HTTPS pode incluir o nome do host ou o endereço IP do host. Se você fornecer o nome do host, use a propriedade Opções de DHCP da sub-rede do gateway de API para controlar como os nomes de host incluídos na especificação de implantação de API são resolvidos para endereços IP no runtime:
- Se o nome do host de um serviço de back-end for publicado publicamente na internet ou se o nome do host pertencer a uma instância na mesma VCN, selecione um conjunto de opções de DHCP para a sub-rede do gateway da API que tenha Internet fornecida pela Oracle e Resolvedor de VCN como o Tipo de DNS. Este é o padrão se você não selecionar explicitamente um conjunto de opções de DHCP.
- Se o nome do host for para um serviço de back-end em sua própria rede privada ou interna, selecione um conjunto de opções de DHCP para a sub-rede do gateway de API que tenha Resolvedor Personalizado como o Tipo de DNS e tenha o URL de um servidor DNS adequado que possa resolver o nome do host para um endereço IP.
Observe que você pode alterar os detalhes do servidor DNS no conjunto de opções de DHCP especificado para a sub-rede de um gateway de API. O gateway de API será reconfigurado para usar os detalhes atualizados do servidor DNS em duas horas. Para obter mais informações sobre como resolver nomes de host para endereços IP, consulte DNS na Sua Rede Virtual na Nuvem e Opções de DHCP.
Você pode adicionar back-ends HTTP e HTTPS a uma especificação de implantação de API:
- usando a Console
- editando um arquivo JSON
Usando a Console para Adicionar Back-Ends de HTTP ou HTTPS a uma Especificação de Implantação de API
Para adicionar um back-end HTTP ou HTTPS 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
HTTP
. -
URL: O URL que você deseja usar como serviço de back-end, no formato
<protocol>://<host>:<port>/<path>
, em que:<protocol>
éhttp
ouhttps
.<host>
é o nome do host ou o endereço IP do host do serviço de back-end. Por exemplo,api.weather.gov
. Se você fornecer um nome de host, use a propriedade Opções de DHCP da sub-rede do gateway de API para controlar como os nomes de host são resolvidos para endereços IP no runtime.<port>
é opcionalmente um número de porta.-
<path>
é opcionalmente um subdiretório ou arquivo no host no qual o serviço de back-end está localizado.Observe que
<path>
não deve conter parâmetros diretamente, mas pode conter variáveis de contexto. Para obter mais informações e exemplos que mostram como usar variáveis de contexto para substituir parâmetros de caminho, consulta e cabeçalho no caminho, consulte Adicionando Variáveis de Contexto a Políticas e Definições de Back-End de HTTP.
Por exemplo,
"url": "https://api.weather.gov"
. - Timeout do estabelecimento da conexão em segundos: Opcionalmente, um valor de ponto flutuante que indica o tempo (em segundos) que deve ser aguardado ao estabelecer uma conexão com o serviço de back-end. O mínimo é 1,0, o máximo é 75,0. Se não for especificado, o valor padrão de 60,0 segundos será usado.
- Timeout de transmissão da solicitação em segundos: Opcionalmente, um valor de ponto flutuante que indica quanto tempo (em segundos) deve ser aguardado ao transmitir uma solicitação ao serviço de back-end. O mínimo é 1,0, o máximo é 300,0. Se não for especificado, o valor padrão de 10,0 segundos será usado.
- Time-out de resposta de leitura em segundos: Opcionalmente, um valor de ponto flutuante que indica quanto tempo (em segundos) deve ser aguardado ao ler uma resposta do serviço de back-end. O mínimo é 1,0, o máximo é 300,0. Se não for especificado, o valor padrão de 10,0 segundos será usado.
- Desativar verificação de SSL: Se a verificação de SSL deve ser desativada ao se comunicar com o serviço de back-end. Por padrão, essa opção não está selecionada.
Neste exemplo, a rota define um serviço de meteorologia como um back-end de HTTP.
Campo: Informe: Caminho: /weather
Métodos: GET
Tipo de Back-end: HTTP
URL: https://api.weather.gov
Time-out de estabelecimento da conexão em segundos: 45
Time-out de transmissão da solicitação em segundos: 15
Time-out da resposta de leitura em segundos: 15
Desativar verificação da SSL: (Não selecionada) -
- (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 Back-Ends de HTTP ou HTTPS a uma Especificação de Implantação de API
Para adicionar um back-end de HTTP ou HTTPS a uma especificação de implantação de API em um arquivo JSON:
-
Usando seu editor de JSON preferido, crie uma nova especificação de implantação de API (consulte Criando uma Especificação de Implantação de API) no formato:
{ "requestPolicies": {}, "routes": [ { "path": "<api-route-path>", "methods": ["<method-list>"], "backend": { "type": "HTTP_BACKEND", "url": "<identifier>", "connectTimeoutInSeconds": <seconds>, "readTimeoutInSeconds": <seconds>, "sendTimeoutInSeconds": <seconds>, "isSSLVerifyDisabled": <true|false> }, "requestPolicies": {}, } ] }
em que:
"requestPolicies"
especifica políticas opcionais para controlar o comportamento de uma implantação de API. Se você quiser aplicar políticas a todas as rotas em uma especificação de implantação de API, coloque as políticas fora da seçãoroutes
. Se quiser aplicar as políticas apenas a uma rota específica, coloque as políticas na seçãoroutes
. Consulte Adicionando Políticas de Solicitação e Políticas de Resposta a Especificações de Implantação de API.-
<api-route-path>
especifica 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)
<method-list>
especifica um ou mais métodos aceitos pelo serviço de back-end, separados por vírgulas. Por exemplo,GET, PUT
."type": "HTTP_BACKEND"
especifica que o back-end do gateway de API é um URL HTTP ou HTTPS.-
"url: "<identifier>"
especifica o URL que você deseja usar como o serviço de back-end no formato<protocol>://<host>:<port>/<path>
em que:<protocol>
éhttp
ouhttps
.<host>
é o nome do host ou o endereço IP do host do serviço de back-end. Por exemplo,api.weather.gov
. Se você fornecer um nome de host, use a propriedade Opções de DHCP da sub-rede do gateway de API para controlar como os nomes de host são resolvidos para endereços IP no runtime.<port>
é opcionalmente um número de porta.-
<path>
é opcionalmente um subdiretório ou arquivo no host no qual o serviço de back-end está localizado.Observe que
<path>
não deve conter parâmetros diretamente, mas pode conter variáveis de contexto. Para obter mais informações e exemplos que mostram como usar variáveis de contexto para substituir parâmetros de caminho, consulta e cabeçalho no caminho, consulte Adicionando Variáveis de Contexto a Políticas e Definições de Back-End de HTTP.
Por exemplo,
"url": "https://api.weather.gov"
. "connectTimeoutInSeconds": <seconds>
é um valor de ponto flutuante opcional que indica quanto tempo (em segundos) deve ser aguardado ao estabelecer uma conexão com o serviço de back-end. O mínimo é 0,0, o máximo é 75,0. Se não for especificado, o valor padrão de 60,0 segundos será usado."readTimeoutInSeconds": <seconds>
é um valor de ponto flutuante opcional que indica quanto tempo (em segundos) deve ser aguardado ao ler uma resposta do serviço de back-end. O mínimo é 0,0, o máximo é 300,0. Se não for especificado, o valor padrão de 10,0 segundos será usado."sendTimeoutInSeconds": <seconds>
é um valor de ponto flutuante opcional que indica quanto tempo (em segundos) deve ser aguardado ao transmitir uma solicitação ao serviço de back-end. O mínimo é 0,0, o máximo é 300,0. Se não for especificado, o valor padrão de 10,0 segundos será usado."isSSLVerifyDisabled": <true|false>
é um valor booliano opcional (true
oufalse
) que indica se a verificação de SSL deve ser desativada ao estabelecer comunicação com o serviço de back-end. Se não for especificado, o valor padrãofalse
será usado.
Por exemplo, a seguinte especificação básica de implantação de API define um serviço meteorológico como um back-end de HTTP:
{ "routes": [ { "path": "/weather", "methods": ["GET"], "backend": { "type": "HTTP_BACKEND", "url": "https://api.weather.gov", "connectTimeoutInSeconds": 45, "readTimeoutInSeconds": 15, "sendTimeoutInSeconds": 15, "isSSLVerifyDisabled": false } } ] }
- 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.
-
(Opcional) Confirme se a API foi implantada chamando-a (consulte Chamando uma API Implantada em um Gateway de API).