Criando uma Especificação de Implantação de API

Descubra como criar uma especificação de API (uma definição legível por máquina de uma API no formato JSON) para uso com o API Gateway.

Para possa implantar uma API em um gateway de API, você precisa criar uma especificação de implantação de API. Cada implantação de API possui uma especificação de implantação de API.

Cada especificação de implantação de API descreve um conjunto de recursos e os métodos (por exemplo, GET, PUT) que podem ser executados em cada recurso.

Você pode usar um gateway de API único como front-end para diversos serviços de back-end:

  • Criando uma implantação de API única no gateway de API, com uma especificação de implantação de API que define vários serviços de back-end.
  • Criando várias implantações de API no mesmo gateway de API, cada uma com uma especificação de implantação de API que define um (ou mais) serviços de back-end.

Geralmente, serviços de back-end estarão na mesma VCN do gateway de API no qual você disponibiliza uma API. No entanto, eles não precisam estar. Na especificação de implantação de API, você pode descrever serviços de back-end que estejam em uma sub-rede privada ou pública em sua tenancy, assim como serviços fora da tenancy (inclusive na internet pública). Onde quer que estejam localizados, os serviços de back-end deverão ser roteáveis da sub-rede que contém o gateway de API no qual a API está implantada. Por exemplo, se o serviço de back-end estiver na internet pública, a VCN deverá ter um gateway de internet para permitir que o gateway de API roteie solicitações para o serviço de back-end.

Você pode criar uma especificação de implantação de API:

  • Usando caixas de diálogo na Console ao criar uma implantação de API.
  • Usando o editor de JSON preferido para criar um arquivo JSON separado. Você pode especificar o arquivo JSON ao usar a Console, a CLI ou a API para criar uma implantação de API.
  • Usando um arquivo de descrição de API que você carrega por upload para um recurso de API. O arquivo de descrição da API fornece alguns valores iniciais para a especificação de implantação da API, que você pode modificar e estender ao implantar o recurso da API em um gateway de API. Consulte Criando um Recurso de API com uma Descrição de API.

As instruções neste tópico mostram uma especificação básica de implantação de API com um único back-end, apenas uma rota e nenhuma política de solicitação ou resposta. Consulte Exemplo de Especificação de Implantação de API com Vários Back-Ends para ver uma especificação de implantação de API mais típica que inclui vários back-ends, cada um com uma ou mais rotas.

Além disso, você pode adicionar políticas de solicitação e resposta que se aplicam a rotas em uma especificação de implantação de API (consulte Adicionando Políticas de Solicitação e Políticas de Resposta a Especificações de Implantação de API).

Usando um Editor de JSON para Criar uma Especificação de Implantação de API em um Arquivo JSON Separado

Para criar uma especificação de implantação de API em um arquivo JSON:

  1. Usando seu editor de JSON preferido, crie a especificação de implantação de API em um arquivo JSON no formato:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "<backend-type>",
            "<backend-target>": "<identifier>"
          },
          "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ção routes. Se quiser aplicar as políticas apenas a uma rota específica, coloque as políticas na seção routes. 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:

    • <method-list> especifica um ou mais métodos aceitos pelo serviço de back-end, separados por vírgulas. Por exemplo, GET, PUT.
    • <backend-type> especifica o tipo do serviço de back-end. Os valores válidos são ORACLE_FUNCTIONS_BACKEND, HTTP_BACKEND e STOCK_RESPONSE_BACKEND.
    • <backend-target> e <identifier> especificam o serviço de back-end. Os valores válidos para <backend-target> e <identifier> dependem do valor de <backend-type>, como se segue:

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

    Para obter um exemplo mais complexo que defina vários back-ends, consulte Exemplo de Especificação de Implantação da API com Vários Back-Ends.

  2. Salve o arquivo JSON que contém a especificação de implantação de API.
  3. 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.

Usando um Arquivo de Descrição da API para Criar uma Especificação de Implantação da API

Para criar uma especificação de implantação de API com base em um arquivo de descrição de API carregado por upload para um recurso de API, consulte Criando um Recurso de API com uma Descrição de API

O arquivo de descrição da API fornece alguns valores iniciais para a especificação de implantação da API, que você pode modificar e estender ao implantar o recurso da API em um gateway de API.

Exemplo de Especificação de Implantação de API com Vários Back-Ends

Você pode criar uma implantação de API única em um gateway de API, com uma especificação de implantação de API que defina vários serviços de back-end.

Por exemplo, a especificação de implantação de API a seguir define uma função simples sem servidor Hello World no OCI Functions como um back-end e a API National Weather Service como um segundo back-end.

{
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    },
    {
      "path": "/weather",
      "methods": ["GET"],
      "backend": {
        "type": "HTTP_BACKEND",
        "url": "https://api.weather.gov"
      }
    }
  ]
}