Publique suas APIs

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Publique APIs no portal para disponibilizá-las para consumo pelos desenvolvedores de apps, como descrito nas seções a seguir.

Visão geral da publicação da API

O processo de publicação de APIs no portal é um processo de duas etapas:

  1. Selecione o produto de API que você quer publicar no portal.
  2. Renderize a documentação de referência da API com base no seu documento da OpenAPI ou esquema do GraphQL para permitir que os desenvolvedores de apps conheçam suas APIs. Para mais informações sobre snapshots, consulte O que é um snapshot?.

O que é publicado no portal?

Quando você publica uma API, as seguintes atualizações são feitas automaticamente no seu portal:

  • Documentos de referência de API. A interface fornecida depende de como você publica a API: usando um documento da OpenAPI ou um esquema do GraphQL. Consulte:
  • Um link para a página "Referência da API" foi adicionado à página "APIs".

    A página de APIs (incluída no portal de amostra) fornece uma lista de todas as APIs publicadas no seu portal, listadas em ordem alfabética, com links para a respectiva documentação de referência da API para mais informações. Você também pode personalizar o seguinte:

    • Imagem exibida para cada card de API
    • Categorias usadas para inclusão de tag em APIs para permitir que os desenvolvedores descubram APIs relacionadas na página de APIs

    Página de APIs no portal ativo mostrando duas categorias e o uso das imagens

SmartDocs (OpenAPI)

Quando você publica uma API usando um documento da OpenAPI, a documentação de referência da API SmartDocs é adicionada ao portal.

Os desenvolvedores podem revisar a documentação de Referência da API do SmartDocs e usar o painel Testar esta API para fazer uma solicitação de API e ver a saída. Testar esta API funciona com endpoints não seguros ou protegidos usando a autenticação básica, a chave de API ou a OAuth, com base no método de segurança definido no documento da OpenAPI. Para OAuth, os seguintes fluxos são compatíveis: código de autorização, senha e credenciais do cliente.

Página de documentação de referência da API com destaques que mostram como autorizar sua chamada de API, desafixar o painel "Testar esta API", fazer o download de especificações relevantes e executar a API.

Clique em Tela cheia para expandir o painel Testar esta API. O painel expandido permite visualizar a chamada curl e os exemplos de código em vários formatos, como HTTP, Python, Node.js e muito mais, conforme mostrado na figura a seguir.

Expandir painel "Testar esta API"

Explorador do GraphQL

Quando você publica uma API usando um esquema do GraphQL, o GraphQL Explorer é adicionado ao seu portal. O GraphQL Explorer é um playground interativo para executar consultas na API. O explorador é baseado no GraphiQL, uma implementação de referência do ambiente de desenvolvimento integrado GraphQL, desenvolvido pela GraphQL Foundation.

Os desenvolvedores podem usar o GraphQL Explorer para analisar a documentação interativa baseada em esquema, criar e executar consultas, ver resultados de consulta e fazer o download do esquema. Para proteger o acesso à sua API, os desenvolvedores podem transmitir cabeçalhos de autorização no painel Cabeçalhos da solicitação.

Para mais informações sobre o GraphQL, consulte graphql.org.

Explorador do GraphQL no portal

O que é um snapshot?

Cada documento da OpenAPI ou do GraphQL serve como a fonte da verdade ao longo do ciclo de vida de uma API. O mesmo documento é usado em cada fase do ciclo de vida da API, desde o desenvolvimento até a publicação e o monitoramento. Ao modificar um documento, é preciso compreender o impacto que as alterações têm na API durante outras fases do ciclo de vida, conforme descrito em O que acontece se eu modificar um documento?.

Quando você publica sua API, cria um snapshot do documento da OpenAPI ou do GraphQL para renderizar a documentação de referência da API. Esse snapshot representa uma determinada versão do documento. Se você modificar o documento, poderá ter outro instantâneo dele para refletir as alterações mais recentes na documentação de referência da API.

Sobre URLs de callback

Se seus aplicativos exigem um URL de callback, como ao usar o tipo de concessão de código de autorização do OAuth 2.0 (geralmente chamado de OAuth de três etapas), você pode exigir que os desenvolvedores especifiquem um URL de callback ao registrarem seus aplicativos. O URL de callback normalmente especifica o URL de um app designado para receber um código de autorização em nome do app cliente. Para mais informações, consulte Como implementar o tipo de concessão do código de autorização.

É possível configurar se é necessário ou não exigir um URL de callback durante o registro do aplicativo ao adicionar uma API ao seu portal. Você pode modificar essa configuração a qualquer momento, conforme descrito em Gerenciar o URL de callback de uma API.

Ao registrar um app, os desenvolvedores precisam inserir um URL de callback para todas as APIs que precisam dele, conforme descrito em Registrar apps.

Configurar o proxy de API para ser compatível com "Testar esta API"

Antes de publicar suas APIs usando um documento da OpenAPI, é preciso configurar o proxy de API para permitir solicitações no painel Testar esta API da documentação de referência da API SmartDocs, conforme descrito a seguir:

  • Adicione suporte a CORS aos proxies de API para aplicar solicitações de origem cruzada do cliente

    O CORS é um mecanismo padrão que permite que chamadas JavaScript XMLHttpRequest (XHR) executadas em uma página da Web interajam com recursos de domínios que não são de origem. O CORS é uma solução comumente implementada na política de mesma origem que é aplicada por todos os navegadores.

  • Atualizar a configuração do proxy da API se você estiver usando a autenticação básica ou o OAuth2

A tabela a seguir resume os requisitos de configuração do proxy de API para oferecer suporte ao painel Testar esta API na documentação de referência da API SmartDocs com base no acesso de autenticação.

Acesso de autenticação Requisitos de configuração de política
Nenhuma ou chave de API Adicione suporte ao CORS ao proxy de API. Para facilitar, use a solução de CORS de amostra fornecida no GitHub ou siga as etapas descritas em Como adicionar suporte ao CORS a um proxy de API.
Autenticação básica Siga as etapas abaixo:
  1. Adicione suporte ao CORS ao proxy de API. Para facilitar, use a solução CORS de amostra fornecida no GitHub ou siga as etapas descritas em Como adicionar suporte ao CORS a um proxy de API.
  2. Na política Add CORS AssignMessage, verifique se o cabeçalho Access-Control-Allow-Headers inclui o atributo authorization. Exemplo:
    <Header name="Access-Control-Allow-Headers">
      origin, x-requested-with, accept, content-type, authorization
    </Header>
OAuth2
  1. Adicione suporte ao CORS ao proxy de API. Para facilitar, use a solução CORS de amostra fornecida no GitHub ou siga as etapas descritas em Como adicionar suporte ao CORS a um proxy de API.
  2. Na política Add CORS AssignMessage, verifique se o cabeçalho Access-Control-Allow-Headers inclui o atributo authorization. Exemplo:
    <Header name="Access-Control-Allow-Headers">
      origin, x-requested-with, accept, content-type, authorization
    </Header>
  3. Corrija o comportamento não compatível com RFC na política do OAuth2. Para facilitar, use a solução de amostra do OAuth2 fornecida no GitHub ou siga as etapas a seguir:
    • Verifique se o elemento <GrantType> na política do OAuth2 está definido como request.formparam.grant_type (parâmetro de formulário). Para mais informações, consulte <GrantType>.
    • Verifique se token_type na política do OAuth2 está definida como Bearer, e não como BearerToken padrão.

Gerenciar APIs

Gerencie suas APIs conforme descrito nas próximas seções.

Ver APIs

Use a interface ou o comando curl para conferir as APIs que estão no seu portal.

Interface

Para ver o catálogo de APIs:

  1. Selecione Publicar > Portais e selecione seu portal.
  2. Clique em Catálogo de APIs na página inicial do portal. Como alternativa, selecione Catálogo de APIs no menu suspenso do portal, na barra de navegação superior.

A guia APIs no catálogo de APIs mostra uma lista das APIs que foram adicionadas ao portal.

Guia de APIs que mostra informações sobre as APIs, incluindo nome, descrição, visibilidade, categorias, especificação associada e horário da última modificação

Como destacado na figura anterior, na guia de APIs, é possível:

curl

Para listar APIs:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs" \
    -H "Authorization: Bearer ACCESS_TOKEN"

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.

Consulte as Observações sobre paginação para ver instruções sobre como usar a paginação no payload de resposta.

Payload de resposta:

{
  "status": "success",
  "message": "one page of apidocs returned",
  "data": [
    {
      "id": 622759,
      "siteId": "my-org-myportal",
      "title": "Test",
      "description": "",
      "published": false,
      "visibility": false,
      "apiId": "apiproducttest18",
      "apiProductName": "apiproduct_test18",
      "edgeAPIProductName": "apiproduct_test18",
      "specId": null,
      "specContent": null,
      "specTitle": null,
      "snapshotExists": false,
      "snapshotModified": null,
      "modified": 1724144471000,
      "anonAllowed": false,
      "imageUrl": null,
      "snapshotState": null,
      "requireCallbackUrl": false,
      "categoryIds": [],
      "specFormat": null,
      "specModified": null,
      "snapshotOutdated": false,
      "snapshotSourceMissing": false,
      "graphqlSchema": null,
      "graphqlEndpointUrl": null,
      "graphqlSchemaDisplayName": null,
      "grpcFileName": null,
      "grpcZipContent": null
    }
  ],
  "code": null,
  "request_id": "1452867334",
  "error_code": null,
  "next_page_token": ""
}

Em que:

  • modified: hora em que o item do catálogo foi modificado pela última vez em milissegundos desde a época. Por exemplo, 1698165480000.
  • id: o ID do item do catálogo. Por exemplo, 399668.

Observações sobre paginação:

  • Tamanho da página: use pageSize para especificar o número de itens da lista que serão retornados em uma página. O padrão é 25, e o máximo é 100. Se houver outras páginas, nextPageToken será preenchido com um token:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs?pageSize=PAGE_SIZE" \
       -H "Authorization: Bearer ACCESS_TOKEN"
    

    Substitua:

    • PAGE_SIZE pelo número de itens de lista a serem retornados em uma página. Por exemplo, 10.

    Payload de resposta:

    {
      "status": "success",
      "message": "one page of apidocs returned",
      "data": [
        {
          "id": 638007,
          "siteId": "tsnow-mint-liztest",
          "title": "Testing",
          "description": "",
          "published": false,
          "visibility": false,
          "apiId": "testcatalog",
          "apiProductName": "testcatalog",
          "edgeAPIProductName": "testcatalog",
          "specId": "Petstore",
          "specContent": null,
          "specTitle": null,
          "snapshotExists": true,
          "snapshotModified": 1726508367000,
          "modified": 1728582504000,
          "anonAllowed": false,
          "imageUrl": null,
          "snapshotState": "OK_SUBMITTED",
          "requireCallbackUrl": false,
          "categoryIds": [],
          "specFormat": "YAML",
          "specModified": null,
          "snapshotOutdated": false,
          "snapshotSourceMissing": false,
          "graphqlSchema": null,
          "graphqlEndpointUrl": null,
          "graphqlSchemaDisplayName": null,
          "grpcFileName": null,
          "grpcZipContent": null
        }
      ],
      "code": null,
      "request_id": "1068810934",
      "error_code": null,
      "next_page_token": ""
    }
    

  • Token de página: use pageToken para recuperar páginas subsequentes quando houver mais de uma:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN" \
          -H "Authorization: Bearer ACCESS_TOKEN"
    

    Substitua:

    • PAGE_SIZE pelo número de itens de lista a serem retornados em uma página. Por exemplo, 10.
    • PAGE_TOKEN pelo valor nextPageToken. Exemplo: 7zcqrin9l6xhi4nbrb9

Adicionar uma API

Use a interface ou o comando curl para adicionar APIs ao portal:

Interface

Para adicionar uma API ao portal:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique em + Adicionar.

    A caixa de diálogo Adicionar um produto de API ao catálogo é exibida.

  4. Selecione o produto de API que você quer adicionar ao seu portal.

  5. Clique em Próxima. A página Detalhes da API é exibida.

  6. Configure o conteúdo da documentação de referência da API e a visibilidade no portal:

    Campo Descrição
    Publicado Selecione Publicado para publicar a API no seu portal. Desmarque a caixa de seleção se não tiver tudo pronto para publicar a API. É possível mudar a configuração mais tarde, conforme descrito em Publicar ou cancelar a publicação de uma API no portal.
    Exibir título Atualize o título da API exibido no catálogo. Por padrão, o nome do produto da API é usado. Você pode mudar o título de exibição mais tarde, conforme descrito em Editar título e descrição de exibição.
    Exibir descrição Atualize a descrição da API exibida no catálogo. Por padrão, a descrição do produto da API é usada. É possível mudar a descrição de exibição mais tarde, conforme descrito em Editar título e descrição de exibição.
    Exigir que os desenvolvedores especifiquem um URL de callback Ative essa opção se quiser exigir que os desenvolvedores de apps especifiquem um URL de callback. É possível adicionar ou atualizar o URL de callback mais tarde, conforme descrito em Gerenciar o URL de callback de uma API.
    Documentação da API

    Para usar um documento da OpenAPI:

    1. Selecione o documento da OpenAPI.
    2. Clique em Selecionar documento.
    3. Realize uma das seguintes etapas:
      • Clique na guia My Specs e selecione uma especificação na loja.
      • Clique na guia Fazer upload do arquivo e faça upload de um arquivo.
      • Clique na guia Importar de um URL e importe uma especificação de um URL.
    4. Clique em Selecionar.

    Para usar um esquema do GraphQL:

    1. Selecione GraphQL Schema.
    2. Clique em Selecionar documento.
    3. Navegue até o esquema do GraphQL e selecione-o.
    4. Clique em Selecionar.

    Como alternativa, selecione Nenhuma documentação e adicione uma depois que a API for adicionada, conforme descrito em Como gerenciar o snapshot do documento.

    Visibilidade da API

    Se você não tiver inscrito na versão Beta do recurso de gerenciamento de públicos-alvo, selecione uma das seguintes opções:

    • Usuários anônimos para permitir que todos os usuários visualizem a API.
    • Usuários registrados para permitir que apenas usuários registrados vejam a API.

    Se você tiver inscrito na versão Beta do recurso de gerenciamento de públicos-alvo, selecione uma das seguintes opções:

    • Público (visível para qualquer pessoa) para permitir que todos os usuários visualizem a API.
    • Usuários autenticados para permitir que apenas usuários registrados vejam a API.
    • Públicos-alvo selecionados para selecionar os públicos-alvo específicos que você quer que acessem a API.

    Você pode gerenciar a visibilidade do público posteriormente, conforme descrito em Gerenciar a visibilidade de uma API no portal.

    Imagem de exibição Para exibir uma imagem no card da API na página "APIs", clique em Selecionar imagem. Na caixa de diálogo Selecionar imagem, selecione uma imagem que já existe, faça upload de uma nova imagem ou forneça o URL de uma imagem externa e clique em Selecionar. Visualize a miniatura da API e clique em Selecionar. É possível adicionar uma imagem mais tarde, conforme descrito em Gerenciar a imagem de um card de API. Ao especificar uma imagem com um URL externo, a imagem não será enviada para seus recursos. Além disso, o carregamento da imagem no portal integrado estará sujeito à disponibilidade, que pode ser bloqueada ou restrita pelas políticas de segurança de conteúdo.
    Categorias

    Adicione as categorias às quais a API será marcada para permitir que os desenvolvedores de apps descubram APIs relacionadas na página de APIs. Para identificar uma categoria:

    • Selecione uma categoria na lista suspensa.
    • Adicione uma nova categoria digitando o nome dela e pressionando Enter. A nova categoria será adicionada à página "Categorias" e ficará disponível ao adicionar ou editar outras APIs.

  7. Clique em Salvar.

curl

Para adicionar uma API ao portal :

curl -X POST "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
       "title": "TITLE",
       "description": "DESCRIPTION",
       "anonAllowed": ANON_TRUE_OR_FALSE,
       "imageUrl": "IMAGE_URL",
       "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
       "categoryIds": [
         "CATEGORY_ID1",
         "CATEGORY_ID2"
       ],
       "published": PUBLISHED_TRUE_OR_FALSE,
        "apiProductName": "API_PRODUCT"
    }'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.
  • TITLE pelo título de exibição. Por exemplo, Hello World 2.
  • DESCRIPTION pela descrição de exibição. Por exemplo, Simple hello world example.
  • ANON_TRUE_OR_FALSE com true ou false (padrão), em que true significa que essa API tem visibilidade pública e pode ser acessada de forma anônima. Caso contrário, apenas usuários registrados poderão acessá-la.
  • IMAGE_URL pelo URL de uma imagem externa usada para o item de catálogo ou um caminho de arquivo para arquivos de imagem armazenados no portal, por exemplo, /files/book-tree.jpg. Ao especificar o URL de uma imagem externa, a imagem não será enviada para seus recursos. Além disso, o carregamento da imagem no portal integrado estará sujeito à disponibilidade, que pode ser bloqueada ou restrita pelas políticas de segurança de conteúdo.
  • CALLBACK_TRUE_OR_FALSE com true ou false (padrão), em que true exige que um usuário do portal insira um URL ao gerenciar o app.
  • CATEGORY_ID pelo ID da categoria. Por exemplo, bf6505eb-2a0f-47af-a00a-ded40ac72960. Separe vários IDs de categoria com uma vírgula. Consiga o ID da categoria com o comando list API categories.
  • PUBLISHED_TRUE_OR_FALSE com true ou false (padrão), em que true indica que a API está disponível publicamente. Quando publicado, você pode permitir o acesso a todos os usuários, usuários autenticados ou específicos.
  • API_PRODUCT pelo nome do produto da API. Por exemplo, Hello World 2.

Payload de resposta:

{
  "status": "success",
  "message": "API created",
  "data": {
    "id": 662423,
    "siteId": "my-org-myportal",
    "title": "My Test Catalog 4",
    "description": "",
    "published": false,
    "visibility": false,
    "apiId": "uxb9wjua",
    "apiProductName": "uXB9wJUa",
    "edgeAPIProductName": "uXB9wJUa",
    "specId": null,
    "specContent": null,
    "specTitle": null,
    "snapshotExists": false,
    "snapshotModified": null,
    "modified": 1729635493000,
    "anonAllowed": false,
    "imageUrl": null,
    "snapshotState": null,
    "requireCallbackUrl": false,
    "categoryIds": [],
    "specFormat": null,
    "specModified": null,
    "snapshotOutdated": null,
    "snapshotSourceMissing": false,
    "graphqlSchema": null,
    "graphqlEndpointUrl": null,
    "graphqlSchemaDisplayName": null,
    "grpcFileName": null,
    "grpcZipContent": null
  },
  "code": null,
  "request_id": "893346193",
  "error_code": null
}

Em que:

  • modified: hora em que o item do catálogo foi modificado pela última vez em milissegundos desde a época. Por exemplo, 1698165480000.
  • id: o ID do item do catálogo. Por exemplo, 399668.

Editar uma API

Depois de adicionar uma API, use a interface ou uma chamada de API para fazer edições.

Nesta seção, apresentamos um exemplo detalhado das etapas a serem seguidas para modificar uma API que já existe no portal.

Consulte as seções seguintes para ver as configurações específicas de modificação.

Interface

Para editar uma API:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em ícone de ediçãoEditar.
  5. Em Detalhes da API, faça as modificações. Consulte as descrições das opções em Adicionar uma API.
  6. Clique em Salvar.

curl

Depois de adicionar uma API, use a chamada update para fazer edições.

Neste exemplo, apresentamos as etapas necessárias para alterar o status publicado da API no portal de true para false. É possível mudar mais de uma configuração em uma única chamada de API, se necessário.

  1. Para localizar o id gerado que identifica exclusivamente cada API, confira uma lista das APIs no seu portal, conforme descrito em Conhecer as APIs.
  2. Retornar os valores atuais de uma API específica:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
    -H "Authorization: Bearer ACCESS_TOKEN"
    

    Substitua:

    • ORG_NAME pelo nome da organização. Por exemplo, my-org.
    • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
    • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.
    • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.

    Payload de resposta:

    {
      "status": "success",
      "message": "apidoc returned",
      "data": {
        "id": 662423,
        "siteId": "my-org-myportal",
        "title": "My Test Catalog 4",
        "description": "",
        "published": false,
        "visibility": false,
        "apiId": "uxb9wjua",
        "apiProductName": "uXB9wJUa",
        "edgeAPIProductName": "uXB9wJUa",
        "specId": null,
        "specContent": null,
        "specTitle": null,
        "snapshotExists": false,
        "snapshotModified": null,
        "modified": 1729635493000,
        "anonAllowed": false,
        "imageUrl": null,
        "snapshotState": null,
        "requireCallbackUrl": false,
        "categoryIds": [],
        "specFormat": null,
        "specModified": null,
        "snapshotOutdated": false,
        "snapshotSourceMissing": false,
        "graphqlSchema": null,
        "graphqlEndpointUrl": null,
        "graphqlSchemaDisplayName": null,
        "grpcFileName": null,
        "grpcZipContent": null
      },
      "code": null,
      "request_id": "601210268",
      "error_code": null
    }
    

  1. Inclua os valores mutáveis que você quer manter na chamada update e modifique os valores que você quer mudar. Se você omitir uma linha, a configuração padrão será usada. Neste exemplo, mude a configuração publicada de false para true:

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
     -H "Authorization: Bearer ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
        "title": "TITLE",
        "anonAllowed": true,
        "published": true
     }'
    

    Substitua:

    • TITLE pelo título de exibição. Por exemplo, Hello World 2.

    Payload de resposta:

    {
      "status": "success",
      "message": "ApiDoc updated",
      "data": {
        "id": 662423,
        "siteId": "my-org-myportal",
        "title": "My Test Catalog 4",
        "description": "",
        "published": true,
        "visibility": true,
        "apiId": "uxb9wjua",
        "apiProductName": "uXB9wJUa",
        "edgeAPIProductName": "uXB9wJUa",
        "specId": null,
        "specContent": null,
        "specTitle": null,
        "snapshotExists": false,
        "snapshotModified": null,
        "modified": 1729989250000,
        "anonAllowed": true,
        "imageUrl": null,
        "snapshotState": null,
        "requireCallbackUrl": false,
        "categoryIds": [],
        "specFormat": null,
        "specModified": null,
        "snapshotOutdated": null,
        "snapshotSourceMissing": false,
        "graphqlSchema": null,
        "graphqlEndpointUrl": null,
        "graphqlSchemaDisplayName": null,
        "grpcFileName": null,
        "grpcZipContent": null
      },
      "code": null,
      "request_id": "738172002",
      "error_code": null
    }
    

Gerenciar o snapshot do documento

Depois de publicar sua API, é possível capturar um novo snapshot do documento da OpenAPI ou do GraphQL para atualizar a documentação de referência da API publicada no portal.

Para gerenciar o snapshot do documento:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Verifique o status do snapshot. Se ela estiver desatualizada, a seguinte mensagem será exibida: Ícone e mensagem indicando snapshot desatualizado
  5. Clique em ícone de edição.
  6. Execute uma das seguintes tarefas:
    • Para atualizar um snapshot de um documento OpenAPI desatualizado, clique em Atualizar snapshot.
    • Para mudar o documento usado para gerar a documentação da API, clique em Selecionar documento em "Documentação da API" e selecione o novo documento.
  7. Clique em Salvar.

Publicar ou cancelar a publicação de uma API no portal

A publicação é o processo de disponibilização das APIs para os desenvolvedores de apps consumirem.

Use a interface ou o comando curl para publicar ou cancelar a publicação de uma API no portal.

Interface

Para publicar ou cancelar publicação de uma API no portal:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Em Detalhes da API, marque ou limpe Publicado (listado no catálogo) para publicar ou cancelar a publicação da API no seu portal, respectivamente.
  6. Clique em Salvar.

curl

Inclua uma das seguintes opções na chamada de atualização:

"published": true,    # API is published to your portal
"published": false,   # API is not published in your portal

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs" \
    -H "Authorization: Bearer ACCESS_TOKEN"
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer mudar. Se você omitir uma configuração mutável, ela será substituída pelo valor padrão.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/  ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
     -H "Authorization: Bearer ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
        "title": "TITLE",
        "description": "DESCRIPTION",
        "anonAllowed": ANON_TRUE_OR_FALSE,
        "imageUrl": IMAGE_URL,
        "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
        "categoryIds": [
          "CATEGORY_ID1",
         "CATEGORY_ID2"
        ],
        "published": PUBLISHED_TRUE_OR_FALSE
    }

Consulte Gerenciar a versão do documento para conferir um exemplo detalhado das etapas, variáveis e payload retornados.

Gerenciar a visibilidade de uma API em seu portal

Gerencie a visibilidade de uma API em seu portal permitindo o acesso a:

  • Público (visível para qualquer pessoa)
  • Usuários autenticados
  • Públicos-alvo selecionados (se você tiver inscrição na versão Beta do recurso de gerenciamento de público-alvo)

Use a interface ou o comando curl para gerenciar a visibilidade de uma API no portal:

Interface

Para gerenciar a visibilidade de uma API em seu portal:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Selecione a configuração de visibilidade. Se você tiver inscrição na versão Beta do recurso de públicos-alvo, selecione uma das seguintes opções:

    • Público (visível para todos) para permitir que todos os usuários vejam a página.
    • Usuários autenticados para permitir que apenas usuários registrados vejam a página.
    • Públicos-alvo selecionados para selecionar os públicos-alvo específicos que você quer que acessem a página. Consulte Gerenciar os públicos-alvo do seu portal.
    Caso contrário, selecione uma destas opções:
    • Usuários anônimos para permitir que todos os usuários visualizem a página.
    • Usuários registrados para permitir que apenas usuários registrados vejam a página.

  6. Clique em Enviar.

curl

Se você tiver inscrição na versão Beta do recurso de gerenciamento de públicos-alvo, use a interface para gerenciar públicos-alvo.

Se você não tiver inscrição no recurso de gerenciamento de públicos-alvo, a visibilidade será gerenciada via anonAllowed.

Inclua uma das seguintes opções na chamada update:

  # When not enrolled in the beta release of the audience management feature:

  "anonAllowed": true,      # Anonymous users can see the API
  "anonAllowed": false,     # Only registered users can see the API

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer alterar. Se você omitir uma configuração mutável, o valor padrão será usado.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
            "title": "TITLE",
            "description": "DESCRIPTION",
            "anonAllowed": ANON_TRUE_OR_FALSE,
            "imageUrl": IMAGE_URL,
            "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
            "categoryIds": [
              "CATEGORY_ID1",
              "CATEGORY_ID2"
            ],
            "published": PUBLISHED_TRUE_OR_FALSE
         }'

Consulte Editar uma API para ver um exemplo detalhado das etapas, variáveis e do payload retornado.

Gerenciar o URL de callback para uma API

Gerenciar o URL de callback para uma API. Consulte Sobre URLs de callback.

Use a interface ou o comando curl para gerenciar o URL de callback de uma API:

Interface

Para gerenciar o URL de callback de uma API:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Em Detalhes da API, marque ou desmarque a caixa de seleção Exigir que os desenvolvedores especifiquem um URL de callback.
  6. Clique em Salvar.

curl

Inclua uma das seguintes opções na chamada update:

  "requireCallbackUrl": true,    # Portal user is required to input a URL
  "requireCallbackUrl": false,   # Portal user is not required to input a URL

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer alterar. Se você omitir uma configuração mutável, o valor padrão será usado.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
            "title": "TITLE",
            "description": "DESCRIPTION",
            "anonAllowed": ANON_TRUE_OR_FALSE,
            "imageUrl": IMAGE_URL,
            "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
            "categoryIds": [
              "CATEGORY_ID1",
              "CATEGORY_ID2"
            ],
            "published": PUBLISHED_TRUE_OR_FALSE
         }'

Consulte Editar uma API para ver um exemplo detalhado das etapas, variáveis e do payload retornado.

Gerenciar a imagem de um card de API

Gerencie a imagem que aparece com um card de API na página de APIs adicionando ou alterando a imagem atual.

Use a interface ou o comando curl para gerenciar a imagem de um card de API:

Interface

Para gerenciar a imagem de um card de API:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Em Detalhes da API:

    • Clique em Selecionar imagem para especificar ou fazer upload de uma imagem se nenhuma estiver selecionada.
    • Clique em Alterar imagem para especificar ou fazer upload de outra imagem.
    • Clique no x na imagem para removê-la.

    Ao especificar uma imagem, especifique uma imagem com um URL externo usado para o item de catálogo ou um caminho para arquivos de imagem armazenados no portal, por exemplo, /files/book-tree.jpg. Ao especificar o URL de uma imagem externa, a imagem não será enviada para seus recursos. Além disso, o carregamento da imagem no portal integrado estará sujeito à disponibilidade, que pode ser bloqueada ou restrita pelas políticas de segurança de conteúdo.

  6. Clique em Salvar.

curl

Inclua o texto a seguir na chamada update:

  # Omit line for no image file

  "imageUrl": "IMAGE_URL"    # URL of the external image or name of the image file

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer alterar. Se você omitir uma configuração mutável, o valor padrão será usado.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
            "title": "TITLE",
            "description": "DESCRIPTION",
            "anonAllowed": ANON_TRUE_OR_FALSE,
            "imageUrl": IMAGE_URL,
            "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
            "categoryIds": [
              "CATEGORY_ID1",
              "CATEGORY_ID2"
            ],
            "published": PUBLISHED_TRUE_OR_FALSE
         }'

Consulte Editar uma API para ver um exemplo detalhado das etapas, variáveis e do payload retornado.

Marcar uma API usando categorias

O uso de categorias ajuda os desenvolvedores de apps a descobrir APIs relacionadas. Consulte também Gerenciar categorias.

Marque uma API usando categorias de uma das seguintes maneiras:

  • Gerencie as categorias às quais uma API está marcada ao editar a API, conforme descrito abaixo.
  • Gerencie as APIs marcadas com uma categoria ao editar a categoria.

Use a IU ou o comando curl para marcar uma API usando categorias:

Interface

Para marcar uma API em categorias ao editar a API:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Clique no campo Categorias e realize uma das seguintes etapas:
    • Selecione uma categoria na lista suspensa.
    • Adicione uma nova categoria digitando o nome dela e pressionando Enter. A nova categoria será adicionada à página "Categorias" e disponibilizada ao adicionar ou editar outras APIs.
  6. Repita para marcar a API em mais categorias.
  7. Clique em Salvar.

curl

Inclua o texto a seguir na chamada update:

  # Omit line for no categories

  "categoryIds": [
      "CATEGORY_ID1",      # A category ID number
      "CATEGORY_ID2"       # A category ID number
    ],

Use o comando list categories para consultar os números de IDs das categorias.

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer alterar. Se você omitir uma configuração mutável, o valor padrão será usado.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
            "title": "TITLE",
            "description": "DESCRIPTION",
            "anonAllowed": ANON_TRUE_OR_FALSE,
            "imageUrl": IMAGE_URL,
            "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
            "categoryIds": [
              "CATEGORY_ID1",
              "CATEGORY_ID2"
            ],
            "published": PUBLISHED_TRUE_OR_FALSE
         }'

Consulte Editar uma API para ver um exemplo detalhado das etapas, variáveis e do payload retornado.

Editar o título e a descrição de exibição

Use a interface ou o comando curl para editar o título e a descrição de exibição:

Interface

Para editar o título e a descrição de exibição:

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Ícone &quot;Editar&quot; Editar.
  5. Edite os campos Título de exibição e Descrição de exibição, conforme necessário.
  6. Clique em Salvar.

curl

Inclua o texto a seguir na chamada update:

  "title": "TITLE",    # Display title
  "description": "DESCRIPTION",  # Display description

Para editar a API:

  1. Retornar os valores atuais:

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Use a chamada update para editar a API. Inclua os valores mutáveis que você quer manter e modifique os valores que você quer alterar. Se você omitir uma configuração mutável, o valor padrão será usado.

    curl -X PUT "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
            "title": "TITLE",
            "description": "DESCRIPTION",
            "anonAllowed": ANON_TRUE_OR_FALSE,
            "imageUrl": IMAGE_URL,
            "requireCallbackUrl": CALLBACK_TRUE_OR_FALSE,
            "categoryIds": [
              "CATEGORY_ID1",
              "CATEGORY_ID2"
            ],
            "published": PUBLISHED_TRUE_OR_FALSE
         }'

Consulte Editar uma API para ver um exemplo detalhado das etapas, variáveis e do payload retornado.

Remover uma API do portal

Use a interface ou o comando curl para remover uma API do seu portal:

Interface

Para remover uma API do seu portal:

  1. Acesse o catálogo de APIs.
  2. Selecione as APIs se ainda não estiverem selecionadas.
  3. Posicione o cursor sobre a API na lista para exibir o menu de ações.
  4. Clique em Ícone &quot;excluir&quot;Excluir.

curl

Para remover uma API do portal:

curl -X DELETE "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
    -H "Authorization: Bearer ACCESS_TOKEN"

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.

Payload de resposta:

{
  "status": "success",
  "message": "Apidoc deleted",
  "data": {
  },
  "code": null,
  "request_id": "1790036484",
  "error_code": null
}

Gerenciar a documentação da API

As seções a seguir descrevem como atualizar, fazer o download ou remover a documentação da API.

Atualizar documentação da API

Para fazer upload de uma versão diferente da documentação da API:

Interface

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Verifique o status do snapshot. Se ela estiver desatualizada, a seguinte mensagem será exibida: Ícone e mensagem indicando snapshot desatualizado
  5. Clique em Editar.
  6. Execute uma das seguintes tarefas:
    • Para atualizar um snapshot de um documento OpenAPI desatualizado, clique em Atualizar snapshot.
    • Para mudar o documento usado para gerar a documentação da API, clique em Selecionar documento em "Documentação da API" e selecione o novo documento.
  7. No painel Documentação da API, selecione uma das seguintes opções:
    • Documento da OpenAPI
    • Esquema do GraphQL
  8. Clique em Selecionar documento e escolha a versão mais recente.
  9. Para o GraphQL, especifique o URL do endpoint.
  10. Clique em Salvar.

A documentação de referência da API é renderizada a partir do documento e adicionada à página de referência da API. O status do snapshot é atualizado para o atual:

Ícone e mensagem indicam que o snapshot é atual

curl

Para atualizar o conteúdo da documentação da OpenAPI ou do GraphQL:

OpenAPI

curl -X PATCH "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC/documentation" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"oasDocumentation": {
           "spec":{ "displayName":"DISPLAY_NAME",
                    "contents":"CONTENTS"}
            }
        }'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.
  • DISPLAY_NAME pelo nome de exibição da documentação da API. Por exemplo, Hello World 2.
  • CONTENTS pela string de conteúdo codificada em base64 da documentação da API. A maioria dos ambientes de desenvolvimento contém um utilitário de conversão base64. Além disso, há muitas ferramentas de conversão on-line.

Payload de resposta:

{
 "status":"success",
 "message":"Api documentation updated",
 "requestId":"645138278"
 "data": {
   "oasDocumentation": {
     "spec": {
        "displayName": "Hello World 2"
      },
     "Format": "YAML"
   }
 }
}

GraphQL

curl -X PATCH "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC/documentation" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"graphqlDocumentation": {
         "schema":{"displayName":"DISPLAY_NAME",
         "contents":"CONTENTS"},
         "endpointUri": "ENDPOINT_URI"
          }
      }'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.
  • DISPLAY_NAME pelo nome de exibição da documentação da API. Por exemplo, Hello World 2.
  • ENDPOINT_URI pelo nome de domínio do URI do endpoint. Por exemplo, https://demo.google.com/graphql.
  • CONTENTS pela string de conteúdo codificada em base64 da documentação da API. A maioria dos ambientes de desenvolvimento contém um utilitário de conversão base64. Além disso, há muitas ferramentas de conversão on-line.

Payload de resposta:

{
"status": "success",
"message": "ApiDocDocumentation updated",
"data": {
  "oasDocumentation": null,
  "graphqlDocumentation": {
    "schema": {
      "displayName": "schema.docs.graphql",
      "contents": ""
    },
    "endpointUri": "https://demo.google.com/graphql"
  }
},
"code": null,
"request_id": "640336173",
"error_code": null
}

A documentação de Referência da API é renderizada com base no documento e adicionada à página de APIs do portal ativo.

Fazer o download da documentação da API

Para fazer o download da documentação da API:

Interface

curl

Para fazer o download da documentação da API usando a documentação de acesso:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC/documentation" \
    -H "Authorization: Bearer ACCESS_TOKEN"

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.

    Payload de resposta:

{
  "status": "success",
  "message": "ApiDocDocumentation returned",
  "data": {
    "oasDocumentation": {
      "spec": {
        "displayName": "mock",
        "contents": "b3BlbmFwaTogMy4wLjAKaW5mbzoKICBkZXNjcmlw ..."
      },
      "format": "YAML"
    },
    "graphqlDocumentation": null
  },
  "code": null,
  "request_id": "269996898",
  "error_code": null
}

Em que:

contents: a string de conteúdo codificada em base64 da documentação da API.

Remover documentação da API

Para remover a documentação da API:

Interface

  1. Acesse o catálogo de APIs.
  2. Clique na guia APIs se ela ainda não estiver selecionada.
  3. Clique na linha da API que você quer editar.
  4. Clique em Editar.
  5. No painel Documentação da API, selecione Sem documentação.
  6. Clique em Salvar.

curl

Para limpar o conteúdo atual, use a API Update:

curl -X PATCH "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC/documentation" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{}'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • API_DOC pelo id gerado do documento. Por exemplo, 399668. Use o comando list API docs para encontrar esse valor.

Payload de resposta:

{
  "status": "success",
  "message": "ApiDocDocumentation updated",
  "data": {
    "oasDocumentation": null,
    "graphqlDocumentation": null
  },
  "code": null,
  "request_id": "304329676",
  "error_code": null
}

Gerenciar categorias usadas para descobrir APIs relacionadas

Marque uma API usando categorias para permitir que os desenvolvedores de apps descubram APIs relacionadas na página de APIs do portal ativo. Adicione e gerencie categorias, conforme descrito nas próximas seções.

Ver categorias

Use a interface ou o comando curl para conferir as APIs que estão no seu portal.

Interface

Para ver a página "Categorias":

  1. Selecione Publicar > Portais e selecione seu portal.
  2. Clique em Catálogo de APIs na página inicial do portal.

    Como alternativa, selecione Catálogo de APIs no menu suspenso do portal, na barra de navegação superior.

  3. Clique na guia Categorias.

A guia Categorias no catálogo de APIs mostra a lista das categorias que foram definidas para seu portal.

Guia &quot;Categorias&quot; que mostra o nome das categorias, bem como o nome e o número total de APIs atribuídas

Como destacado na figura anterior, na página de APIs, é possível:

curl

Para listar categorias:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apicategories" \
    -H "Authorization: Bearer ACCESS_TOKEN"

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.

Payload de resposta:

{
  "status": "success",
  "message": "all ApiCategory items returned",
  "data": [
    {
      "id": "e0518597-ece2-4d7d-ba7c-d1793df0f8db",
      "siteId": "my-org-myportal",
      "name": "My Category"
    },
    {
      "id": "61c1014c-89c9-40e6-be3c-69cca3505620",
      "siteId": "my-org-myportal",
      "name": "test2"
    }
  ],
  "code": null,
  "request_id": "1263510680",
  "error_code": null
}

Em que:

  • id: o ID do item de categoria. Por exemplo, 61c1014c-89c9-40e6-be3c-69cca3505620.

Adicionar uma categoria

Adicione uma categoria de uma das seguintes maneiras:

A nova categoria será adicionada à página Categorias e disponibilizada ao adicionar ou editar outras APIs.

Use a interface ou o comando curl para adicionar uma categoria:

Interface

Para adicionar uma categoria manualmente:

  1. Acesse a página "Categorias".
  2. Clique em + Adicionar.
  3. Digite o nome da nova categoria.
  4. Opcionalmente, selecione uma ou mais APIs para marcar na categoria.
  5. Clique em Criar.

curl

Para adicionar uma categoria:

curl -X POST "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apicategories" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"name": "CATEGORY_NAME" }'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.
  • CATEGORY_NAME pelo nome da categoria. Por exemplo, demo-backend.

Payload de resposta:

{
  "status": "success",
  "message": "API category created",
  "data": {
    "id": "61de810e-b48b-4cc1-8f22-959038aadcce",
    "siteId": "my-org-myportal",
    "name": "demo-backend"
  },
  "code": null,
  "request_id": "363146927",
  "error_code": null
}

Editar uma categoria

Use a interface ou o comando curl para editar uma categoria:

Interface

Para editar uma categoria:

  1. Acesse a página "Categorias".
  2. Clique em Editar.
  3. Edite o nome da categoria.
  4. Adicione ou remova tags de API.
  5. Clique em Salvar.

curl

Para editar uma categoria:

curl -X PATCH "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apicategories/CATEGORY_ID"  \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"name": "CATEGORY_NAME" }'

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • CATEGORY_ID pelo ID da categoria. Por exemplo, bf6505eb-2a0f-47af-a00a-ded40ac72960. Separe vários IDs de categoria com uma vírgula. Consiga o ID da categoria com o comando list API categories.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.
  • CATEGORY_NAME pelo nome da categoria. Por exemplo, demo-backend.

Payload de resposta:

{
  "status": "success",
  "message": "ApiCategory updated",
  "data": {
    "id": "61de810e-b48b-4cc1-8f22-959038aadcce",
    "siteId": "my-org-myportal",
    "name": "demo-backend-test"
  },
  "code": null,
  "request_id": "1976875617",
  "error_code": null
}

Excluir uma categoria

Quando você exclui uma categoria, todas as tags da API dessa categoria também são excluídas.

Use a interface ou o comando curl para excluir uma categoria:

Interface

Para excluir uma categoria:

  1. Acesse a página "Categorias".
  2. Posicione o cursor sobre a categoria que você quer editar para exibir o menu de ações.
  3. Clique em Excluir.
  4. Clique em Excluir para confirmar.

curl

Para excluir uma categoria:

curl -X DELETE "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apicategories/CATEGORY_ID" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -H "Content-Type: application/json"

Substitua:

  • ORG_NAME pelo nome da organização. Por exemplo, my-org.
  • SITE_ID com o nome do portal, no formato ORG_NAME-PORTAL_NAME, em que ORG_NAME é o nome da organização e PORTAL_NAME é o nome do portal convertido para letras minúsculas e sem espaços nem traços. Exemplo: my-org-myportal.
  • CATEGORY_ID pelo ID da categoria. Por exemplo, bf6505eb-2a0f-47af-a00a-ded40ac72960. Consiga o ID da categoria com o comando list API categories.
  • ACCESS_TOKEN com o token de autenticação usado para acessar a API Apigee Edge. Para mais informações sobre autenticação e tokens, consulte Autenticar o acesso à API Edge.

Payload de resposta:

{
  "status": "success",
  "message": "ApiCategory deleted",
  "data": {
  },
  "code": null,
  "request_id": "2032819627",
  "error_code": null
}

Resolver problemas com as APIs publicadas

As próximas seções contêm informações para ajudar a corrigir erros específicos em nossas APIs publicadas.

Erro: falha ao buscar erro retornado ao usar "testar esta API"

Ao usar Testar esta API, se o erro TypeError: Failed to fetch for retornado, considere as seguintes possíveis causas e resoluções:

  • Em erros de conteúdo misto, o erro pode ser causado por um problema conhecido do swagger-ui. Uma alternativa possível é especificar o HTTPS antes do HTTP na definição de schemes no documento da OpenAPI. Exemplo:

    schemes:
       - https
       - http
    
  • Para erros de restrição de compartilhamento de recursos entre origens (CORS, na sigla em inglês), verifique se o CORS é compatível com seus proxies de API. O CORS é um mecanismo padrão que permite solicitações entre origens do cliente. Consulte Configurar seu proxy de API para ser compatível com "Testar esta API".

Erro: o cabeçalho "Access-Control-Allow-Origem" contém vários valores "*, *", mas apenas um é permitido

Ao usar Testar esta API, você poderá receber a seguinte mensagem de erro se o cabeçalho Access-Control-Allow-Origin já existir:

The Access-Control-Allow-Origin header contains multiple values '*, *', but only one is allowed.

Para corrigir esse erro, modifique a política AssignMessage para usar <Set> para definir os cabeçalhos CORS em vez de <Add>, conforme mostrado no trecho abaixo. Para mais informações, consulte Erro de CORS : o cabeçalho contém vários valores '*, *', mas apenas um é permitido.

<AssignMessage async="false" continueOnError="false" enabled="true" name="add-cors">
    <DisplayName>Add CORS</DisplayName>
    <FaultRules/>
    <Properties/>
    <Set>
        <Headers>
            <Header name="Access-Control-Allow-Origin">{request.header.origin}</Header>
            <Header name="Access-Control-Allow-Headers">origin, x-requested-with, accept, content-type, authorization</Header>
            <Header name="Access-Control-Max-Age">3628800</Header>
            <Header name="Access-Control-Allow-Methods">GET, PUT, POST, DELETE</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

Erro: campo de cabeçalho da solicitação não permitido

Ao usar Testar esta API, se você receber um erro Request header field not allowed, semelhante ao exemplo abaixo, talvez seja necessário atualizar os cabeçalhos compatíveis com a política do CORS. Exemplo:

Access to XMLHttpRequest ... has been blocked by CORS policy: Request header field
content-type is not allowed by Access-Control-Allow-Headers in preflight response

Neste exemplo, é preciso adicionar o cabeçalho content-type à seção Access-Control-Allow-Headers na política AssignMessage do CORS, conforme descrito em Como anexar uma política Add CORS a um novo proxy de API.

Erro: acesso negado ao chamar um proxy de API usando OAuth2

A política OAuthV2 da Apigee retorna uma resposta de token que contém determinadas propriedades não compatíveis com RFC. Por exemplo, a política retornará um token com o valor BearerToken, em vez do valor esperado Bearer compatível com RFC. Essa resposta token_type inválida pode resultar em um erro Access denied ao usar Testar esta API.

Para corrigir esse problema, crie uma política JavaScript ou AssignMessage para transformar a saída da política em um formato compatível. Para mais informações, consulte Comportamento não compatível com o RFC.