Как опубликовать 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. Он основан на GraphiQL – эталонной реализации GraphQL IDE, разработанной 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 в справочной документации SmartDocs API. Для этого выполните следующие действия:

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

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

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

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

Доступ к аутентификации Требования к настройке правил
None (Нет) или API key (Ключ API) Добавьте поддержку CORS в прокси-сервер API. Для удобства используйте пример решения CORS, представленный на GitHub, или следуйте инструкциям в статье Добавление поддержки CORS в прокси-сервер API.
Базовая аутентификация Выполните следующие действия:
  1. Добавьте поддержку CORS в прокси-сервер API. Для удобства используйте пример решения CORS, доступный на GitHub, или следуйте инструкциям в статье Добавление поддержки CORS в прокси-сервер API.
  2. В правиле Add 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. В правиле Add 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…
    • Убедитесь, что для параметра token_type в правиле OAuth2 задано значение Bearer, а не значение по умолчанию BearerToken.

Управление API

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

Обзор API

Чтобы посмотреть API на портале, используйте интерфейс или команду curl.

Интерфейс

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

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

На вкладке APIs (API) в каталоге API показан список API, добавленных на портал.

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

Как показано на рисунке выше, на вкладке APIs (API) можно:

curl

Чтобы получить список 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 – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.

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

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

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

Интерфейс

Чтобы добавить 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. Нажмите Выбрать.

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

    Видимость API

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

    • Анонимные пользователи – чтобы разрешить всем пользователям просматривать API.
    • Зарегистрированные пользователи – только зарегистрированные пользователи могут просматривать API.

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

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

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

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

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

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

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

curl

Чтобы добавить 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 – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.
  • 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. Если идентификаторов несколько, их следует перечислять через запятую. Получите идентификатор категории с помощью команды list API 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 на вашем портале.

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

Интерфейс

Чтобы изменить API, выполните следующие действия:

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Значок редактированияИзменить.
  5. В разделе Сведения об API внесите нужные изменения. Описание вариантов приведено в разделе Добавление API.
  6. Нажмите Сохранить.

curl

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

В этом примере показано, как изменить статус публикации 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 – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.

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

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

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

Интерфейс

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

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

curl

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

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

    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.

Интерфейс

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

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить значок Изменить.
  5. Выберите тип доступа. Если вы зарегистрировались в бета-версии функции "Аудитории", выберите один из следующих вариантов:

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

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

curl

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

Если вы не зарегистрировались в функции управления аудиториями, видимость управляется с помощью 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, используйте вызов update. Включите изменяемые значения, которые вы хотите сохранить, и измените значения, которые вы хотите изменить. Если вы не укажете изменяемый параметр, будет использоваться значение по умолчанию.

    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:

Интерфейс

Чтобы управлять URL обратного вызова для API, выполните следующие действия:

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить значок Изменить.
  5. В разделе Сведения об API установите или снимите флажок Требовать от разработчиков указывать URL обратного вызова.
  6. Нажмите Сохранить.

curl

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

    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:

Интерфейс

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

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить значок Изменить.
  5. В разделе Сведения об API:

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

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

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

curl

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

    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, отмеченными тегами категории, можно при редактировании категории.

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

Интерфейс

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

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить значок Изменить.
  5. Нажмите на поле Категории и выполните одно из следующих действий:
    • Выберите категорию из раскрывающегося списка.
    • Чтобы добавить новую категорию, введите ее название и нажмите Ввод. Новая категория будет добавлена на страницу "Категории" и станет доступна при добавлении или редактировании других API.
  6. Повторите эти действия, чтобы добавить API в другие категории.
  7. Нажмите Сохранить.

curl

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

    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.

Интерфейс

Чтобы изменить название и описание, выполните следующие действия:

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить значок Изменить.
  5. При необходимости измените поля Отображаемое название и Отображаемое описание.
  6. Нажмите Сохранить.

curl

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

    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.

Интерфейс

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

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

curl

Чтобы удалить 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 – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.

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

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

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

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

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

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

Интерфейс

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

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

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

curl

Чтобы обновить содержимое документации 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 – строка в кодировке Base64, содержащая документацию по API. В большинстве сред разработки есть утилита для преобразования в формат 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 на доменное имя URI конечной точки. Пример: https://demo.google.com/graphql.
  • CONTENTS – строка в кодировке Base64, содержащая документацию по API. В большинстве сред разработки есть утилита для преобразования в формат base64. Также можно использовать онлайн-инструменты.

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

{
"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 создается на основе документа и добавляется на страницу API активного портала.

Скачать документацию по API

Чтобы скачать документацию по API, выполните следующие действия:

Интерфейс

curl

Чтобы скачать документацию по API с помощью метода 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 – название организации. Пример: my-org.
  • SITE_ID – название портала в формате ORG_NAME-PORTAL_NAME, где ORG_NAME – название организации, а PORTAL_NAME – название портала, написанное строчными буквами без пробелов и дефисов. например my-org-myportal.
  • API_DOC со сгенерированным id документа. Пример: 399668. Чтобы найти это значение, используйте команду list API docs.

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

{
  "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 – строка в кодировке Base64, содержащая документацию по API.

Удалить документацию по API

Чтобы удалить документацию по API, выполните следующие действия:

Интерфейс

  1. Откройте каталог API.
  2. Перейдите на вкладку API.
  3. Нажмите на строку API, который нужно изменить.
  4. Нажмите Изменить.
  5. На панели Документация по API выберите Нет документации.
  6. Нажмите Сохранить.

curl

Чтобы удалить существующий контент, используйте 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 – название организации. Пример: my-org.
  • SITE_ID – название портала в формате ORG_NAME-PORTAL_NAME, где ORG_NAME – название организации, а PORTAL_NAME – название портала, написанное строчными буквами без пробелов и дефисов. например my-org-myportal.
  • API_DOC со сгенерированным id документа. Пример: 399668. Чтобы найти это значение, используйте команду list API docs.

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

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

Управление категориями, используемыми для поиска связанных API

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

Поиск по категориям

Чтобы посмотреть API на портале, используйте интерфейс или команду curl.

Интерфейс

Чтобы открыть страницу "Категории", выполните следующие действия:

  1. Выберите Опубликовать > Порталы и укажите нужный портал.
  2. Нажмите Каталог API на главной странице портала.

    Вы также можете выбрать Каталог API в раскрывающемся меню портала на верхней панели навигации.

  3. Перейдите на вкладку Категории.

На вкладке Категории в каталоге API показан список категорий, определенных для вашего портала.

Вкладка &quot;Категории&quot;, на которой показаны названия категорий, а также названия и общее количество назначенных API.

Как показано на рисунке выше, на странице API можно:

curl

Чтобы получить список категорий:

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

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

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

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

{
  "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 – идентификатор элемента категории. например 61c1014c-89c9-40e6-be3c-69cca3505620.

Как добавить категорию

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

Новая категория будет добавлена на страницу Категории и станет доступна при добавлении или редактировании других API.

Добавьте категорию в интерфейсе или с помощью команды curl:

Интерфейс

Чтобы добавить категорию вручную:

  1. Как перейти на страницу "Категории"
  2. Нажмите + Добавить.
  3. Введите название новой категории.
  4. При необходимости выберите один или несколько API, которые нужно добавить в категорию.
  5. Нажмите Создать.

curl

Чтобы добавить категорию:

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 – название организации. Пример: my-org.
  • SITE_ID – название портала в формате ORG_NAME-PORTAL_NAME, где ORG_NAME – название организации, а PORTAL_NAME – название портала, написанное строчными буквами без пробелов и дефисов. например my-org-myportal.
  • ACCESS_TOKEN – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.
  • CATEGORY_NAME с названием категории. например demo-backend.

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

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

Как изменить категорию

Чтобы изменить категорию, используйте интерфейс или команду curl:

Интерфейс

Чтобы изменить категорию, выполните следующие действия:

  1. Как перейти на страницу "Категории"
  2. Нажмите Изменить.
  3. Измените название категории.
  4. Добавление и удаление тегов API.
  5. Нажмите Сохранить.

curl

Чтобы изменить категорию:

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 – название организации. Пример: my-org.
  • SITE_ID – название портала в формате ORG_NAME-PORTAL_NAME, где ORG_NAME – название организации, а PORTAL_NAME – название портала, написанное строчными буквами без пробелов и дефисов. например my-org-myportal.
  • CATEGORY_ID – идентификатор категории. Пример: bf6505eb-2a0f-47af-a00a-ded40ac72960. Если идентификаторов несколько, их следует перечислять через запятую. Получите идентификатор категории с помощью команды list API categories.
  • ACCESS_TOKEN – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.
  • CATEGORY_NAME с названием категории. например demo-backend.

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

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

Как удалить полку

При удалении категории также удаляются все теги API, относящиеся к ней.

Удалить категорию можно в интерфейсе или с помощью команды curl:

Интерфейс

Чтобы удалить категорию, выполните следующие действия:

  1. Как перейти на страницу "Категории"
  2. Наведите указатель мыши на категорию, которую нужно изменить, чтобы открыть меню действий.
  3. Нажмите Удалить.
  4. Нажмите Удалить, чтобы подтвердить действие.

curl

Чтобы удалить категорию:

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 – название организации. Пример: my-org.
  • SITE_ID – название портала в формате ORG_NAME-PORTAL_NAME, где ORG_NAME – название организации, а PORTAL_NAME – название портала, написанное строчными буквами без пробелов и дефисов. например my-org-myportal.
  • CATEGORY_ID – идентификатор категории. Пример: bf6505eb-2a0f-47af-a00a-ded40ac72960. Получите идентификатор категории с помощью команды list API categories.
  • ACCESS_TOKEN – токен аутентификации, используемый для доступа к Apigee Edge API. Дополнительную информацию об аутентификации и токенах можно найти в статье Аутентификация доступа к Edge API.

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

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

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

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

Ошибка: при использовании функции "Попробовать этот API" возвращена ошибка "Не удалось получить"

Если при использовании инструмента Попробовать этот API возвращается ошибка TypeError: Failed to fetch, ознакомьтесь с возможными причинами и решениями ниже.

  • Ошибки смешанного контента могут быть вызваны известной проблемой со swagger-ui. В качестве возможного решения вы можете указать HTTPS перед HTTP в определении schemes в документе OpenAPI. Пример:

    schemes:
       - https
       - http
    
  • Если вы видите ошибки, связанные с ограничениями совместного использования ресурсов из разных источников (CORS), убедитесь, что ваши прокси-серверы API поддерживают CORS. CORS – это стандартный механизм, который позволяет выполнять междоменные запросы на стороне клиента. Подробнее о том, как настроить прокси-сервер API для поддержки функции "Попробовать этот API"…

Ошибка: заголовок Access-Control-Allow-Origin содержит несколько значений "*, *", но разрешено только одно.

При использовании инструмента Попробовать этот API вы можете получить следующее сообщение об ошибке, если заголовок Access-Control-Allow-Origin уже существует:

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

Чтобы исправить эту ошибку, измените правило AssignMessage, чтобы для настройки заголовков CORS использовался элемент <Set>, а не <Add>, как показано в примере ниже. Дополнительную информацию можно найти в статье Ошибка CORS : заголовок содержит несколько значений '*, *', но разрешено только одно.

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

Ошибка: поле заголовка запроса не разрешено

Если при использовании инструмента Попробовать этот API вы получаете ошибку Request header field not allowed, похожую на приведенную ниже, возможно, вам нужно обновить заголовки, поддерживаемые в правилах CORS. Пример:

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

В этом примере вам нужно добавить заголовок content-type в раздел Access-Control-Allow-Headers правила AssignMessage для CORS, как описано в разделе Прикрепление правила Add CORS к новому прокси-серверу API.

Ошибка: доступ запрещен при вызове прокси-сервера API с помощью OAuth2

Правило OAuthV2 в Apigee возвращает ответ токена, содержащий определенные свойства, не соответствующие RFC. Например, правило вернет токен со значением BearerToken вместо ожидаемого значения Bearer, соответствующего RFC. Этот недопустимый ответ token_type может привести к ошибке Access denied при использовании инструмента Попробовать этот API.

Чтобы устранить эту проблему, вы можете создать правило JavaScript или AssignMessage, которое преобразует выходные данные правила в соответствующий формат. Подробнее о поведении, не соответствующем RFC…