Публикуйте свои API

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Опубликуйте API на своем портале, чтобы сделать их доступными для разработчиков приложений, как описано в следующих разделах.

Обзор публикации API

Процесс публикации API на вашем портале состоит из двух этапов:

  1. Выберите API-продукт, который вы хотите опубликовать на своем портале.
  2. Отображайте справочную документацию по API из вашего документа OpenAPI или схемы GraphQL, чтобы разработчики приложений могли узнать о ваших API. (Дополнительную информацию о снимках см. в разделе «Что такое снимок? »).

Что публикуется на портале?

При публикации API на вашем портале автоматически вносятся следующие обновления:

  • Документация по API. Предоставляемый интерфейс зависит от того, публикуете ли вы свой API с помощью документа OpenAPI или схемы GraphQL. См.:
  • На страницу API добавлена ​​ссылка на страницу справочника API.

    На странице «API» (входит в состав демонстрационного портала ) представлен список всех API, опубликованных на вашем портале, отсортированный по алфавиту, со ссылками на соответствующую справочную документацию по API для получения дополнительной информации. При желании вы можете настроить следующие параметры:

    • Изображение отображается для каждой карточки API
    • Категории используются для маркировки API, чтобы разработчики могли находить связанные API на странице API.

    Страница API в рабочем портале, отображающая две категории и использующая изображения.

SmartDocs (OpenAPI)

При публикации API с использованием документа OpenAPI, справочная документация SmartDocs по API добавляется на ваш портал.

Разработчики могут ознакомиться с документацией по API SmartDocs и использовать панель «Попробовать этот API» , чтобы отправить запрос к API и просмотреть результат. Панель «Попробовать этот API» работает как с незащищенными, так и с защищенными конечными точками, использующими базовую аутентификацию, аутентификацию по ключу API или аутентификацию OAuth, в зависимости от метода безопасности, определенного в вашем документе OpenAPI. Для OAuth поддерживаются следующие потоки: код авторизации, пароль и учетные данные клиента.

Страница справочной документации по API, содержащая подсказки о том, как авторизовать вызов API, открепить панель «Попробовать этот API», загрузить соответствующую спецификацию и выполнить вызов API.

Нажмите Для развертывания панели «Попробуйте этот API» включите полноэкранный режим . Развернутая панель позволяет просматривать вызовы curl и примеры кода в различных форматах, таких как HTTP, Python, Node.js и другие, как показано на следующем рисунке.

Расширенная панель «Попробовать этот API»

GraphQL Explorer

При публикации API с использованием схемы GraphQL на ваш портал добавляется GraphQL Explorer. GraphQL Explorer — это интерактивная среда для выполнения запросов к вашему API. Explorer основан на GraphiQL , эталонной реализации IDE GraphQL, разработанной фондом GraphQL Foundation.

Разработчики могут использовать GraphQL Explorer для изучения интерактивной документации на основе схемы, создания и выполнения запросов, просмотра результатов запросов и загрузки схемы. Для обеспечения безопасного доступа к вашему API разработчики могут передавать заголовки авторизации на панели «Заголовки запроса» .

Для получения дополнительной информации о GraphQL посетите сайт graphql.org .

GraphQL Explorer на портале

Что такое снимок состояния системы?

Каждый документ OpenAPI или GraphQL служит источником достоверной информации на протяжении всего жизненного цикла API. Один и тот же документ используется на каждом этапе жизненного цикла API, от разработки до публикации и мониторинга. При изменении документа необходимо учитывать влияние этих изменений на API на других этапах жизненного цикла, как описано в разделе «Что произойдет, если я изменю документ?» .

При публикации API вы создаете снимок документа OpenAPI или GraphQL для отображения справочной документации API. Этот снимок представляет собой конкретную версию документа. Если вы вносите изменения в документ, вы можете создать еще один снимок документа, чтобы отразить последние изменения в справочной документации API.

О URL-адресах обратного вызова

Если вашим приложениям требуется URL-адрес обратного вызова, например, при использовании типа предоставления кода авторизации OAuth 2.0 (часто называемого трехэтапной авторизацией OAuth ), вы можете потребовать от разработчиков указать URL-адрес обратного вызова при регистрации своих приложений. URL-адрес обратного вызова обычно указывает URL-адрес приложения, которому поручено получать код авторизации от имени клиентского приложения. Для получения дополнительной информации см. раздел «Реализация типа предоставления кода авторизации» .

При добавлении API на портал вы можете настроить, требуется ли указывать URL-адрес обратного вызова во время регистрации приложения. Вы можете изменить этот параметр в любое время, как описано в разделе «Управление URL-адресом обратного вызова для API» .

При регистрации приложения разработчики должны указать URL-адрес обратного вызова для всех API, которые его требуют, как описано в разделе «Регистрация приложений» .

Настройте свой API-прокси для поддержки функции "Попробовать этот API".

Перед публикацией ваших API с использованием документа OpenAPI вам необходимо настроить ваш API-прокси для поддержки запросов к панели «Попробуйте этот API» в справочной документации по API SmartDocs следующим образом:

  • Добавьте поддержку CORS в ваши API-прокси, чтобы обеспечить защиту от междоменных запросов на стороне клиента.

    CORS — это стандартный механизм, позволяющий вызовам JavaScript XMLHttpRequest (XHR), выполняемым на веб-странице, взаимодействовать с ресурсами из доменов, не относящихся к определенному источнику. CORS — это широко распространенное решение проблемы политики одного источника , которая применяется всеми браузерами.

  • Обновите конфигурацию API-прокси, если вы используете базовую аутентификацию или OAuth2.

В таблице ниже приведено краткое описание требований к настройке прокси-сервера API для поддержки панели «Попробуйте этот API» в справочной документации по API SmartDocs в зависимости от типа доступа к аутентификации.

Доступ к авторизации Требования к настройке политики
Нет или ключ API Добавьте поддержку CORS в свой API-прокси. Для удобства используйте пример решения CORS, предоставленный на GitHub, или следуйте инструкциям, описанным в разделе «Добавление поддержки CORS в API-прокси» .
Базовая аутентификация Выполните следующие шаги:
  1. Добавьте поддержку CORS в свой API-прокси. Для удобства используйте пример решения CORS, предоставленный на GitHub, или следуйте инструкциям, описанным в разделе «Добавление поддержки CORS в API-прокси» .
  2. В политике добавления CORS AssignMessage убедитесь, что заголовок Access-Control-Allow-Headers содержит атрибут authorization . Например:
    <Header name="Access-Control-Allow-Headers">
      origin, x-requested-with, accept, content-type, authorization
    </Header>
OAuth2
  1. Добавьте поддержку CORS в свой API-прокси. Для удобства используйте пример решения CORS, предоставленный на GitHub, или следуйте инструкциям, описанным в разделе «Добавление поддержки CORS в API-прокси» .
  2. В политике добавления CORS AssignMessage убедитесь, что заголовок Access-Control-Allow-Headers содержит атрибут authorization . Например:
    <Header name="Access-Control-Allow-Headers">
      origin, x-requested-with, accept, content-type, authorization
    </Header>
  3. Исправьте несоответствующее RFC поведение в вашей политике OAuth2. Для удобства используйте пример решения OAuth2, предоставленный на GitHub, или выполните следующие шаги:
    • Убедитесь, что элемент <GrantType> в политике OAuth2 имеет значение request.formparam.grant_type (параметр формы). Для получения дополнительной информации см. <GrantType> .
    • Убедитесь, что в политике OAuth2 token_type установлен на Bearer , а не на значение по умолчанию BearerToken .

Управление API

Управляйте своими API, как описано в следующих разделах.

Изучите API

Используйте пользовательский интерфейс или команду curl для просмотра API, доступных на вашем портале.

UI

Чтобы просмотреть каталог API:

  1. Выберите «Публикация» > «Порталы» и выберите свой портал.
  2. На главной странице портала нажмите «Каталог API» . Также вы можете выбрать «Каталог API» в выпадающем меню портала в верхней панели навигации.

Вкладка «API» в каталоге API отображает список API, добавленных на ваш портал.

Вкладка «API» отображает информацию об API, включая название, описание, видимость, категории, связанную спецификацию и время изменения.

Как показано на предыдущем рисунке, вкладка «API» позволяет:

локон

Чтобы перечислить API :

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

Замените следующее:

  • ORG_NAME — название организации. Например, my-org .
  • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
  • ACCESS_TOKEN содержит токен аутентификации, используемый для доступа к API Apigee Edge. Дополнительную информацию об аутентификации и токенах см. в разделе «Аутентификация доступа к API Edge» .

См. примечания по пагинации для получения инструкций по использованию пагинации в ответе.

Ответная полезная нагрузка:

{
  "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": ""
}

Где:

  • modified : Время последнего изменения элемента каталога в миллисекундах с начала эпохи. Например, 1698165480000 .
  • id : Идентификатор элемента каталога. Например, 399668 .

Примечания к нумерации страниц:

  • Размер страницы : Используйте pageSize , чтобы указать количество элементов списка, которые должны отображаться на одной странице. Значение по умолчанию — 25, максимальное — 100. Если есть дополнительные страницы, nextPageToken заполняется токеном:

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

    Заменять:

    • PAGE_SIZE — количество элементов списка, которые должны отображаться на одной странице. Например, 10.

    Ответная полезная нагрузка:

    {
      "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": ""
    }
    

  • Токен страницы : Используйте pageToken для получения последующих страниц, если их несколько:

    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"
    

    Заменять:

    • PAGE_SIZE — количество элементов списка, которые должны отображаться на одной странице. Например, 10.
    • PAGE_TOKEN со значением nextPageToken . Например, 7zcqrin9l6xhi4nbrb9 .

Добавить API

Для добавления API на ваш портал используйте пользовательский интерфейс или команду curl :

UI

Чтобы добавить API на свой портал:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Нажмите + Добавить .

    Отображается диалоговое окно «Добавить продукт API в каталог» .

  4. Выберите API-продукт, который вы хотите добавить на свой портал.

  5. Нажмите «Далее» . Отобразится страница с подробной информацией об API .

  6. Настройте содержимое справочной документации API и его видимость на портале:

    Поле Описание
    Опубликовано Выберите «Опубликовано» , чтобы опубликовать API на вашем портале. Снимите флажок, если вы еще не готовы опубликовать API. Вы можете изменить эту настройку позже, как описано в разделе «Публикация или отмена публикации API на вашем портале» .
    Отображаемый заголовок Обновите заголовок вашего API, отображаемый в каталоге. По умолчанию используется название продукта API. Вы можете изменить отображаемый заголовок позже, как описано в разделе «Редактирование отображаемого заголовка и описания» .
    Отображаемое описание Обновите описание вашего API, отображаемое в каталоге. По умолчанию используется описание продукта API. Вы можете изменить отображаемое описание позже, как описано в разделе «Редактирование отображаемого заголовка и описания» .
    Обязать разработчиков указывать URL-адрес обратного вызова. Включите эту опцию, если хотите обязать разработчиков приложений указывать URL-адрес обратного вызова . Вы можете добавить или обновить URL-адрес обратного вызова позже, как описано в разделе «Управление URL-адресом обратного вызова для API» .
    Документация API

    Для использования документа OpenAPI:

    1. Выберите документ OpenAPI .
    2. Нажмите «Выбрать документ» .
    3. Выполните одно из следующих действий:
      • Перейдите во вкладку «Мои характеристики» и выберите нужную характеристику из каталога характеристик.
      • Нажмите вкладку «Загрузить файл» и загрузите файл.
      • Перейдите на вкладку «Импорт из URL-адреса» и импортируйте спецификацию из URL-адреса.
    4. Нажмите «Выбрать» .

    Для использования схемы GraphQL:

    1. Выберите схему GraphQL .
    2. Нажмите «Выбрать документ» .
    3. Перейдите к схеме GraphQL и выберите её.
    4. Нажмите «Выбрать» .

    В качестве альтернативы вы можете выбрать «Без документации» и добавить ее позже, после добавления API, как описано в разделе «Управление снимком документа» .

    видимость API

    Если вы еще не зарегистрировались для участия в бета-тестировании функции управления аудиторией , выберите один из следующих вариантов:

    • Анонимные пользователи позволяют всем пользователям просматривать API.
    • Для доступа к API только зарегистрированным пользователям .

    Если вы зарегистрировались для участия в бета-тестировании функции управления аудиторией , выберите один из следующих вариантов:

    • Публичный (видимый всем) интерфейс, позволяющий всем пользователям просматривать API.
    • Аутентифицированные пользователи позволяют разрешать просмотр API только зарегистрированным пользователям.
    • Выберите целевую аудиторию , чтобы указать, каким именно группам пользователей вы хотите разрешить просмотр API.

    Вы можете управлять видимостью аудитории позже, как описано в разделе «Управление видимостью API на вашем портале» .

    Изображение для отображения Чтобы отобразить изображение на карточке API на странице API, нажмите « Выбрать изображение» . В диалоговом окне «Выбрать изображение» выберите существующее изображение, загрузите новое изображение или укажите URL-адрес внешнего изображения и нажмите «Выбрать» . Просмотрите эскиз API и нажмите «Выбрать» . Вы можете добавить изображение позже, как описано в разделе «Управление изображением для карточки API» . При указании изображения с внешним URL-адресом изображение не будет загружено в ваши ресурсы; кроме того, загрузка изображения во встроенном портале будет зависеть от его доступности, которая может быть заблокирована или ограничена политиками безопасности контента .
    Категории

    Добавьте категории, к которым будет привязан API, чтобы разработчики приложений могли находить связанные API на странице API. Чтобы указать категорию:

    • Выберите категорию из выпадающего списка.
    • Чтобы добавить новую категорию, введите её название и нажмите Enter . Новая категория будет добавлена ​​на страницу «Категории» и станет доступна при добавлении или редактировании других API.

  7. Нажмите « Сохранить ».

локон

Чтобы добавить API на свой портал:

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

Замените следующее:

  • ORG_NAME — название организации. Например, my-org .
  • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
  • ACCESS_TOKEN содержит токен аутентификации, используемый для доступа к API Apigee Edge. Дополнительную информацию об аутентификации и токенах см. в разделе «Аутентификация доступа к API Edge» .
  • TITLE с отображаемым заголовком. Например, Hello World 2 .
  • DESCRIPTION с описанием для отображения. Например, Simple hello world example .
  • ANON_TRUE_OR_FALSE со значением true или false (по умолчанию), где true означает, что данный API имеет публичную видимость и может просматриваться анонимно; в противном случае, его могут просматривать только зарегистрированные пользователи.
  • IMAGE_URL содержит URL-адрес внешнего изображения, используемого для элемента каталога, или путь к файлам изображений, хранящимся на портале, например, /files/book-tree.jpg . При указании URL-адреса внешнего изображения оно не будет загружено в ваши ресурсы; кроме того, загрузка изображения во встроенный портал будет зависеть от его доступности, которая может быть заблокирована или ограничена политиками безопасности контента .
  • CALLBACK_TRUE_OR_FALSE со true или false (по умолчанию), где true требует от пользователя портала ввода URL-адреса при управлении приложением.
  • CATEGORY_ID содержит идентификатор категории. Например, bf6505eb-2a0f-47af-a00a-ded40ac72960 . Несколько идентификаторов категорий разделяются запятой. Получить идентификатор категории можно с помощью команды API list categories .
  • Параметр PUBLISHED_TRUE_OR_FALSE принимает значения true или false (по умолчанию), где true означает, что API является общедоступным. При публикации вы можете разрешить доступ всем пользователям, авторизованным пользователям или определенным пользователям.
  • API_PRODUCT содержит название API-продукта. Например, Hello World 2 .

Ответная полезная нагрузка:

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

Где:

  • modified : Время последнего изменения элемента каталога в миллисекундах с начала эпохи. Например, 1698165480000 .
  • id : Идентификатор элемента каталога. Например, 399668 .

Редактировать API

После добавления API используйте пользовательский интерфейс или вызов API для внесения изменений.

В этом разделе приведен подробный пример шагов, необходимых для изменения существующего API на вашем портале.

Конкретные параметры модификации описаны в последующих разделах.

UI

Для редактирования API:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. В разделе «Подробности API» внесите необходимые изменения. Описание параметров см. в разделе «Добавить API» .
  6. Нажмите « Сохранить ».

локон

После добавления API используйте вызов обновления для внесения изменений.

В этом примере показаны шаги, необходимые для изменения статуса публикации вашего API на портале с true на false . При необходимости вы можете изменить несколько настроек в одном вызове API.

  1. Чтобы найти сгенерированный id , однозначно определяющий каждый API, получите список API на вашем портале, как описано в разделе «Изучение API» .
  2. Возвращает текущие значения для конкретного API :

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

    Замените следующее:

    • ORG_NAME — название организации. Например, my-org .
    • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
    • API_DOC содержит сгенерированный id документа. Например, 399668 Используйте команду list API docs, чтобы найти это значение.
    • ACCESS_TOKEN содержит токен аутентификации, используемый для доступа к API Apigee Edge. Дополнительную информацию об аутентификации и токенах см. в разделе «Аутентификация доступа к API Edge» .

    Ответная полезная нагрузка:

    {
      "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. Включите в вызов обновления изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы пропустите строку, будет использована настройка по умолчанию. В этом примере измените опубликованную настройку с false на 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
     }'
    

    Замените следующее:

    • TITLE с отображаемым заголовком. Например, Hello World 2 .

    Ответная полезная нагрузка:

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

Управление снимком документа

После публикации вашего API вы в любое время можете сделать новый снимок документа OpenAPI или GraphQL, чтобы обновить справочную документацию по API, опубликованную на вашем портале.

Для управления снимком документа:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Проверьте состояние снимка. Если он устарел, отобразится следующее сообщение: Значок и сообщение, указывающие на то, что снимок устарел.
  5. Нажмите значок редактирования .
  6. Выполните одно из следующих заданий:
    • Чтобы обновить устаревший снимок документа OpenAPI, нажмите кнопку «Обновить снимок» .
    • Чтобы изменить документ, используемый для генерации документации к API, в разделе «Документация API» нажмите «Выбрать документ» и выберите новый документ.
  7. Нажмите « Сохранить ».

Опубликовать или удалить API на своем портале

Публикация — это процесс предоставления ваших API разработчикам приложений для использования.

Используйте пользовательский интерфейс или команду curl для публикации или отмены публикации API на вашем портале.

UI

Чтобы опубликовать или снять с публикации API на вашем портале:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. В разделе «Подробности API» выберите или снимите флажок «Опубликовано» (указано в каталоге), чтобы опубликовать или снять с публикации API на вашем портале соответственно.
  6. Нажмите « Сохранить ».

локон

Включите в запрос на обновление один из следующих пунктов:

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

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs" \
    -H "Authorization: Bearer ACCESS_TOKEN"
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, он будет перезаписан значением по умолчанию.

    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
    }

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Управление версией документа» .

Управляйте видимостью API на вашем портале.

Управляйте видимостью API на вашем портале, предоставляя доступ к следующим данным:

  • Общедоступный (видимый любому)
  • Аутентифицированные пользователи
  • Выбранные аудитории (если вы участвуете в бета-тестировании функции управления аудиториями)

Для управления видимостью API на вашем портале используйте пользовательский интерфейс или команду curl :

UI

Чтобы управлять видимостью API на вашем портале:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. Выберите параметр видимости. Если вы участвуете в бета-тестировании функции управления аудиториями, выберите один из следующих вариантов:

    • Публичный (видимый для всех) — это означает, что страницу могут просматривать все пользователи.
    • Аутентифицированные пользователи позволяют разрешать просмотр страницы только зарегистрированным пользователям.
    • Выберите целевую аудиторию , чтобы указать, каким именно группам пользователей вы хотите разрешить просмотр страницы. См. раздел «Управление аудиториями для вашего портала» .
    В противном случае выберите один из следующих вариантов:
    • Анонимные пользователи позволяют разрешить просмотр страницы всем пользователям.
    • Для доступа к странице только зарегистрированным пользователям .

  6. Нажмите «Отправить» .

локон

Если вы зарегистрировались в бета-версии функции управления аудиторией, используйте пользовательский интерфейс для управления аудиториями.

Если вы не подключили функцию управления аудиторией, видимость регулируется с помощью anonAllowed .

Включите в запрос 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

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использовано значение по умолчанию.

    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
         }'

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Редактирование API» .

Управление URL-адресом обратного вызова для API

Управление URL-адресом обратного вызова для API. См. раздел «Об URL-адресах обратного вызова» .

Для управления URL-адресом обратного вызова для API используйте пользовательский интерфейс или команду curl :

UI

Для управления URL-адресом обратного вызова для API:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. В разделе «Подробности API» установите или снимите флажок « Требовать от разработчиков указания URL-адреса обратного вызова» .
  6. Нажмите « Сохранить ».

локон

Включите в запрос update один из следующих пунктов:

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

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использовано значение по умолчанию.

    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
         }'

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Редактирование API» .

Управление образом для карты API

Управляйте изображением, отображаемым вместе с карточкой API на странице API, добавляя или изменяя текущее изображение.

Для управления образом карты API используйте пользовательский интерфейс или команду curl :

UI

Для управления образом карты API:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. В разделе сведений об API :

    • Нажмите «Выбрать изображение» , чтобы указать изображение, или загрузите изображение, если оно не выбрано.
    • Нажмите «Изменить изображение» , чтобы указать или загрузить другое изображение.
    • Нажмите на крестик на изображении, чтобы удалить его.

    При указании изображения укажите либо внешний URL-адрес изображения, используемого для элемента каталога, либо путь к файлам изображений, хранящимся на портале , например, /files/book-tree.jpg . При указании URL-адреса внешнего изображения оно не будет загружено в ваши ресурсы; кроме того, загрузка изображения во встроенный портал будет зависеть от его доступности, которая может быть заблокирована или ограничена политиками безопасности контента .

  6. Нажмите « Сохранить ».

локон

Включите в запрос update следующую информацию:

  # Omit line for no image file

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

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использовано значение по умолчанию.

    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
         }'

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Редактирование API» .

Пометьте API, используя категории.

Использование категорий помогает разработчикам приложений находить связанные API. См. также раздел «Управление категориями» .

Пометить API с помощью категорий можно одним из следующих способов:

  • При редактировании API управляйте категориями, к которым он относится, как описано ниже.
  • Управляйте API, привязанными к категории, при редактировании категории .

Используйте пользовательский интерфейс или команду curl для присвоения тегов API с помощью категорий:

UI

Чтобы при редактировании API добавить теги к категориям:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. Щелкните в поле «Категории» и выполните одно из следующих действий:
    • Выберите категорию из выпадающего списка.
    • Чтобы добавить новую категорию, введите её название и нажмите Enter . Новая категория будет добавлена ​​на страницу «Категории» и станет доступна при добавлении или редактировании других API.
  6. Повторите эти действия, чтобы добавить теги API к большему количеству категорий.
  7. Нажмите « Сохранить ».

локон

Включите в запрос update следующую информацию:

  # Omit line for no categories

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

Используйте команду `list categories` , чтобы получить идентификационные номера категорий.

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использовано значение по умолчанию.

    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
         }'

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Редактирование API» .

Отредактируйте заголовок и описание отображения.

Для редактирования заголовка и описания используйте пользовательский интерфейс или команду curl :

UI

Чтобы отредактировать заголовок и описание отображения:

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Нажмите значок редактирования Редактировать .
  5. При необходимости отредактируйте поля « Заголовок отображения» и «Описание отображения» .
  6. Нажмите « Сохранить ».

локон

Включите в запрос update следующую информацию:

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

Для редактирования API:

  1. Возвращает текущие значения :

    curl -X GET "https://api.enterprise.apigee.com/v1/organizations/ORG_NAME/sites/SITE_ID/apidocs/API_DOC" \
         -H "Authorization: Bearer ACCESS_TOKEN"
    
  2. Используйте вызов обновления для редактирования API. Укажите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использовано значение по умолчанию.

    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
         }'

Подробный пример шагов, переменных и возвращаемых данных см. в разделе «Редактирование API» .

Удалите API из своего портала

Для удаления API с вашего портала используйте пользовательский интерфейс или команду curl :

UI

Чтобы удалить API из вашего портала:

  1. Получите доступ к каталогу API .
  2. Выберите API , если они еще не выбраны.
  3. Наведите курсор на API в списке, чтобы отобразить меню действий.
  4. Нажмите Значок удаления Удалить .

локон

Чтобы удалить API из вашего портала :

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

Замените следующее:

  • ORG_NAME — название организации. Например, my-org .
  • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
  • API_DOC содержит сгенерированный id документа. Например, 399668 Используйте команду list API docs, чтобы найти это значение.
  • ACCESS_TOKEN содержит токен аутентификации, используемый для доступа к API Apigee Edge. Дополнительную информацию об аутентификации и токенах см. в разделе «Аутентификация доступа к API Edge» .

Ответная полезная нагрузка:

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

Управление документацией API

В следующих разделах описано, как обновить, загрузить или удалить документацию по API.

Обновить документацию API

Чтобы загрузить другую версию документации API:

UI

  1. Получите доступ к каталогу API .
  2. Если вкладка «API» еще не выбрана, нажмите на нее.
  3. Щёлкните по строке API, которую хотите отредактировать.
  4. Проверьте состояние снимка. Если он устарел, отобразится следующее сообщение: Значок и сообщение, указывающие на то, что снимок устарел.
  5. Нажмите » .
  6. Выполните одно из следующих заданий:
    • Чтобы обновить устаревший снимок документа OpenAPI, нажмите кнопку «Обновить снимок» .
    • Чтобы изменить документ, используемый для генерации документации к API, в разделе «Документация API» нажмите «Выбрать документ» и выберите новый документ.
  7. В панели документации API выберите один из следующих вариантов:
    • документ OpenAPI
    • Схема GraphQL
  8. Нажмите «Выбрать документ» и выберите последнюю версию документа.
  9. Для GraphQL укажите URL-адрес конечной точки .
  10. Нажмите « Сохранить ».

Документация по API отображается на основе существующего документа и добавляется на страницу «Справочник API». Статус снимка обновляется до текущего:

Значок и сообщение указывают на то, что снимок является текущим.

локон

Для обновления содержимого документации OpenAPI или 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"}
            }
        }'

Замените следующее:

  • ORG_NAME — название организации. Например, my-org .
  • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
  • API_DOC содержит сгенерированный id документа. Например, 399668 Используйте команду list API docs, чтобы найти это значение.
  • DISPLAY_NAME содержит отображаемое имя из документации API. Например, Hello World 2 .
  • CONTENTS — это строка содержимого документации API, закодированная в base64. В большинстве сред разработки есть утилита для преобразования в base64 , или же существует множество онлайн-инструментов для преобразования.

Ответная полезная нагрузка:

{
 "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"
          }
      }'

Замените следующее:

  • ORG_NAME — название организации. Например, my-org .
  • SITE_ID с именем портала в формате ORG_NAME-PORTAL_NAME , где ORG_NAME — это название организации, а PORTAL_NAME — имя портала, преобразованное в нижний регистр без пробелов и дефисов. Например, my-org-myportal .
  • API_DOC содержит сгенерированный id документа. Например, 399668 Используйте команду list API docs, чтобы найти это значение.
  • DISPLAY_NAME содержит отображаемое имя из документации API. Например, Hello World 2 .
  • ENDPOINT_URI with the domain name of your endpoint URI. For example, https://demo.google.com/graphql .
  • CONTENTS with the base64-encoded string of contents of the API documentation. Most development environments contain a base64 conversion utility, or there are many online conversion tools.

Response payload:

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

API reference documentation is rendered from the document and added to the APIs page of the live portal.

Download API documentation

To download API documentation:

UI

локон

To download API documentation using get documentation :

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

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • API_DOC with the generated id of the document. For example, 399668 . Use the list API docs command to find this value.

    Response payload:

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

Где:

contents : The base64-encoded string of contents of the API documentation.

Remove API documentation

To remove API documentation:

UI

  1. Access the API catalog .
  2. Click the APIs tab, if not already selected.
  3. Click in the row of the API that you want to edit.
  4. Click Edit .
  5. In the API documentation pane, select No documentation .
  6. Нажмите « Сохранить ».

локон

To clear existing content use the update API :

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 '{}'

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • API_DOC with the generated id of the document. For example, 399668 . Use the list API docs command to find this value.

Response payload:

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

Manage categories used to discover related APIs

Tag an API using categories to enable app developers to discover related APIs on the APIs page of the live portal. Add and manage categories, as described in the following sections.

Изучите категории

Use the UI or curl command to view APIs that are in your portal.

UI

To view the Categories page:

  1. Select Publish > Portals and select your portal.
  2. Click API catalog on the portal home page.

    Alternatively, you can select API catalog in the portal drop-down menu in the top navigation bar.

  3. Click the Categories tab.

The Categories tab in the API catalog displays the list of the categories that have been defined for your portal.

Categories tab that shows the category name, and names and total number of APIs assigned

As highlighted in the previous figure, the APIs page enables you to:

локон

To list categories :

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

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • ACCESS_TOKEN with the authentication token used to access the Apigee Edge API. For more information on authentication and tokens, see Authenticate access to the Edge API .

Response payload:

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

Где:

  • id : The ID of the category item. For example, 61c1014c-89c9-40e6-be3c-69cca3505620 .

Add a category

Add a category in one of the following ways:

The new category will be added to the Categories page and made available when adding or editing other APIs.

Use the UI or curl command to add a category:

UI

To manually add a category:

  1. Access the Categories page .
  2. Click + Add .
  3. Enter the name of your new category.
  4. Optionally, select one or more APIs to tag to the category.
  5. Нажмите «Создать» .

локон

To add a category :

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

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • ACCESS_TOKEN with the authentication token used to access the Apigee Edge API. For more information on authentication and tokens, see Authenticate access to the Edge API .
  • CATEGORY_NAME with the name of the category. For example, demo-backend .

Response payload:

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

Edit a category

Use the UI or curl command to edit a category:

UI

To edit a category:

  1. Access the Categories page .
  2. Нажмите Редактировать .
  3. Edit the name of the category.
  4. Add or remove API tags.
  5. Нажмите « Сохранить ».

локон

To edit a category :

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

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • CATEGORY_ID with the ID of the category. For example, bf6505eb-2a0f-47af-a00a-ded40ac72960 . Separate multiple category IDs with a comma. Get the category ID with the list API categories command.
  • ACCESS_TOKEN with the authentication token used to access the Apigee Edge API. For more information on authentication and tokens, see Authenticate access to the Edge API .
  • CATEGORY_NAME with the name of the category. For example, demo-backend .

Response payload:

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

Delete a category

When you delete a category, all API tags to that category are also deleted.

Use the UI or curl command to delete a category:

UI

To delete a category:

  1. Access the Categories page .
  2. Position your cursor over the category that you want to edit to display the actions menu.
  3. Нажмите Удалить .
  4. Click Delete to confirm.

локон

To delete a category :

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"

Замените следующее:

  • ORG_NAME with the name of the organization. For example, my-org .
  • SITE_ID with the name of the portal, in the form ORG_NAME-PORTAL_NAME , where ORG_NAME is the name of the organization and PORTAL_NAME is the portal name converted to all lowercase and with spaces and dashes removed. For example, my-org-myportal .
  • CATEGORY_ID with the ID of the category. For example, bf6505eb-2a0f-47af-a00a-ded40ac72960 . Get the category ID with the list API categories command.
  • ACCESS_TOKEN with the authentication token used to access the Apigee Edge API. For more information on authentication and tokens, see Authenticate access to the Edge API .

Response payload:

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

Troubleshoot issues with your published APIs

The following sections provide information to help you troubleshoot specific errors with our published APIs.

Error: Failed to fetch error returned when using Try this API

When using Try this API , if the TypeError: Failed to fetch error is returned, consider the following possible causes and resolutions:

  • For mixed content errors, the error may be caused by a known swagger-ui issue . One possible workaround is to make sure that you specify HTTPS before HTTP in the schemes definition in your OpenAPI document. For example:

    schemes:
       - https
       - http
    
  • For Cross-Origin Resource Sharing (CORS) restriction errors, ensure that CORS is supported for your API proxies. CORS is a standard mechanism that enables client-side cross-origin requests. See Configure your API proxy to support Try this API .

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

When using Try this API , you may receive the following error message if the Access-Control-Allow-Origin header already exists:

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

To correct this error, modify the AssignMessage policy to use <Set> to set the CORS headers instead of <Add> , as shown in the excerpt below. For more information, see CORS Error : header contains multiple values '*, *', but only one is allowed .

<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>

Error: Request header field not allowed

When using Try this API , if you receive a Request header field not allowed error, similar to the example below, you may need to update the headers supported in the CORS policy. For example:

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

In this example, you need to add the content-type header to the Access-Control-Allow-Headers section in your CORS AssignMessage policy, as described in Attaching an Add CORS policy to a new API proxy .

Error: Access denied when calling an API proxy using OAuth2

Apigee's OAuthV2 policy returns a token response that contains certain non-RFC-compliant properties. For example, the policy will return a token with the value BearerToken , instead of the expected RFC-compliant value Bearer . This invalid token_type response can result in an Access denied error when using Try this API .

To correct this issue, you can create a JavaScript or AssignMessage policy to transform the policy output into a compliant format. For more information, see non-RFC-compliant behavior .