發布 API

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

將 API 發布至您的入口網站,讓應用程式開發人員能夠使用,詳情請參閱下列各節。

API 發布總覽

發布 API 至入口網站的程序分為兩個步驟:

  1. 選取要發布至入口網站的 API 產品。
  2. 從 OpenAPI 文件或 GraphQL 結構定義算繪 API 參考說明文件,讓應用程式開發人員瞭解您的 API。(如要進一步瞭解快照,請參閱「什麼是快照?」一文)。

發布到入口網站的內容為何?

發布 API 後,系統會自動對入口網站進行下列更新:

  • API 參考文件。提供的介面取決於您是使用 OpenAPI 文件還是 GraphQL 結構定義來發布 API。請參閱:
  • API 參考資料頁面的連結已新增至「API」頁面

    「API」頁面 ( 範例入口網站中提供) 會列出所有已發布至入口網站的 API,並依字母順序排列,並提供各個 API 參考資料說明文件的連結,方便您進一步瞭解。您可以視需要自訂下列項目:

    • 每張 API 資訊卡顯示的圖片
    • 用於標記 API 的類別,方便開發人員在「API」頁面上探索相關 API

    實際運作中的入口網站中的「API」頁面,顯示兩個類別和圖片用法

SmartDocs (OpenAPI)

使用 OpenAPI 文件發布 API 時,SmartDocs API 參考說明文件會新增至入口網站。

開發人員可以查看您的 SmartDocs API 參考說明文件,並使用「Try this API」面板提出 API 要求,查看輸出內容。試用這個 API 可搭配未加密的端點或使用 Basic、API 金鑰或 OAuth 驗證的加密端點運作,這取決於您在 OpenAPI 文件中定義的安全性方法。OAuth 支援下列流程:授權碼、密碼和用戶端憑證。

API 參考說明文件頁面,其中的說明文字說明如何授權 API 呼叫、解除固定的「Try this API」面板、下載相關規格,以及執行 API。

按一下 全螢幕,展開「Try this API」面板。展開的面板可讓您以各種格式查看 curl 呼叫和程式碼範例,例如 HTTP、Python、Node.js 等,如以下圖示所示。

展開的「Try this API」面板

GraphQL Explorer

使用 GraphQL 結構定義發布 API 時,GraphQL Explorer 會新增至您的入口網站。GraphQL Explorer 是互動式 Playground,可針對 API 執行查詢。這項探索器是以 GraphiQL 為基礎,這是 GraphQL 基金會開發的 GraphQL IDE 參考實作項目。

開發人員可以使用 GraphQL Explorer 探索以結構定義為基礎的互動式說明文件、建立及執行查詢、查看查詢結果,以及下載結構定義。如要安全地存取 API,開發人員可以在「Request Headers」窗格中傳遞授權標頭。

如要進一步瞭解 GraphQL,請造訪 graphql.org

入口網站中的 GraphQL Explorer

什麼是快照?

每個 OpenAPI 或 GraphQL 文件都是 API 整個生命週期中的可靠來源。在 API 生命週期的每個階段 (從開發到發布到監控),都會使用相同的文件。修改文件時,您必須瞭解變更對 API 在其他生命週期階段的影響,如「如果我修改文件會發生什麼情況?」一文所述。

發布 API 時,您會擷取 OpenAPI 或 GraphQL 文件的快照,以顯示 API 參考說明文件。該快照代表文件的特定版本。如果您修改文件,可以再拍攝文件的快照,以便反映 API 參考資料文件的最新變更。

關於回呼網址

如果您的應用程式需要回呼網址 (例如使用 OAuth 2.0 授權碼核發類型 (通常稱為「三方 OAuth」) 時),您可以要求開發人員在註冊應用程式時指定回呼網址。回呼網址通常會指定應用程式的網址,以便代表用戶端應用程式接收授權碼。詳情請參閱「實作授權碼授權類型」。

在入口網站中新增 API時,您可以設定是否要在應用程式註冊期間要求回呼網址。您隨時可以修改這項設定,如「管理 API 的回呼網址」一文所述。

註冊應用程式時,開發人員必須為所有需要回呼網址的 API 輸入回呼網址,如「註冊應用程式」一文所述。

設定 API Proxy 以支援「試用此 API」

在使用 OpenAPI 文件發布 API 之前,您必須設定 API Proxy,以便在 SmartDocs API 參考說明文件的「Try this API」面板中提出要求,如下所示:

  • 在 API Proxy 中新增 CORS 支援,強制執行用戶端跨來源要求

    CORS 是一種標準機制,可讓您在網頁中執行 JavaScript XMLHttpRequest (XHR) 呼叫,以便與非來源網域的資源互動。針對所有瀏覽器強制執行的同源政策,CORS 是常見的實作解決方案。

  • 如果您使用基本驗證或 OAuth2,請更新 API Proxy 設定

下表列出 API Proxy 設定要求,以便根據驗證存取權支援 SmartDocs API 參考說明文件中的「Try this API」面板。

驗證存取權 政策設定需求
無或 API 金鑰 為 API Proxy 新增 CORS 支援。為方便起見,請使用 GitHub 提供的 CORS 範例解決方案,或按照「 為 API 代理程式新增 CORS 支援」一文所述的步驟操作。
基本驗證 請執行下列步驟:
  1. 為 API Proxy 新增 CORS 支援。為方便起見,請使用 GitHub 提供的 CORS 範例解決方案,或按照「 為 API 代理程式新增 CORS 支援」一文所述的步驟操作。
  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. 為 API Proxy 新增 CORS 支援。為方便起見,請使用 GitHub 提供的 CORS 範例解決方案,或按照「 為 API 代理程式新增 CORS 支援」一文所述的步驟操作。
  2. 在「新增 CORS AssignMessage」政策中,請確認 Access-Control-Allow-Headers 標頭包含 authorization 屬性。例如:
    <Header name="Access-Control-Allow-Headers">
      origin, x-requested-with, accept, content-type, authorization
    </Header>
  3. 修正 OAuth2 政策中 不符合 RFC 的行為。為方便起見,請使用 GitHub 提供的 OAuth2 範例解決方案,或執行下列步驟:
    • 請確認 OAuth2 政策中的 <GrantType> 元素已設為 request.formparam.grant_type (表單參數)。詳情請參閱 <GrantType>
    • 確認 OAuth2 政策中的 token_type 已設為 Bearer,而非預設的 BearerToken

管理 API

按照下列各節的說明管理 API。

探索 API

使用 UI 或 curl 指令查看入口網站中的 API。

UI

如要查看 API 目錄,請按照下列步驟操作:

  1. 依序選取「發布」>「入口網站」,然後選取入口網站。
  2. 按一下入口網站首頁上的「API 目錄」。或者,您也可以在頂端導覽列的入口網站下拉式選單中選取「API 目錄」

API 目錄中的「API 分頁」會顯示已新增至入口網站的 API 清單。

「API」分頁會顯示 API 相關資訊,包括名稱、說明、顯示設定、類別、相關規格和修改時間

如上圖所示,您可以透過「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:目錄項目 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_TOKENnextPageToken 值。例如:7zcqrin9l6xhi4nbrb9

新增 API

使用 UI 或 curl 指令,將 API 新增至入口網站:

UI

如要將 API 新增至入口網站,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下「+」「新增」。

    系統會顯示「Add an API product to the catalog」對話方塊。

  4. 選取要新增至入口網站的 API 產品。

  5. 按一下「繼續」,系統會顯示「API 詳細資料」頁面。

  6. 設定 API 參考資料文件內容,以及在入口網站上的瀏覽權限:

    欄位 說明
    已發布 選取「已發布」,即可將 API 發布至入口網站。 如果您尚未準備好發布 API,請取消勾選核取方塊。 您稍後可以變更設定,如「在入口網站上發布或取消發布 API」一文所述。
    顯示標題 更新目錄中顯示的 API 標題。 根據預設,系統會使用 API 產品名稱。您可以稍後變更顯示標題,如編輯顯示標題和說明所述。
    顯示說明 更新目錄中顯示的 API 說明。根據預設,系統會使用 API 產品說明。您可以稍後變更顯示說明,如「編輯顯示標題和說明」一文所述。
    要求開發人員指定回呼網址 如要要求應用程式開發人員指定回呼網址,請啟用這項設定。您可以稍後新增或更新回呼網址,如「管理 API 的回呼網址」一文所述。
    API 說明文件

    如何使用 OpenAPI 文件:

    1. 選取「OpenAPI 文件」
    2. 按一下「選取文件」
    3. 請執行下列任一步驟:
      • 按一下「我的規格」分頁標籤,然後從規格商店中選取規格。
      • 按一下「上傳檔案」分頁,然後上傳檔案。
      • 按一下「從網址匯入」分頁標籤,然後從網址匯入規格。
    4. 按一下「選取」

    如何使用 GraphQL 結構定義:

    1. 選取「GraphQL 結構定義」
    2. 按一下「選取文件」
    3. 前往並選取 GraphQL 結構定義。
    4. 按一下「選取」

    或者,您也可以選取「無說明文件」,並在稍後新增 API 後再新增說明文件,如管理文件快照所述。

    API 瀏覽權限

    如果您尚未 註冊目標對象管理功能的 Beta 版,請選擇下列其中一個選項:

    • 匿名使用者:允許所有使用者查看 API。
    • 已註冊的使用者:僅允許已註冊的使用者查看 API。

    如果您 已註冊目標對象管理功能的 Beta 版,請選擇下列其中一個選項:

    • 公開 (所有人都能看見),允許所有使用者查看 API。
    • 已驗證的使用者:只允許已註冊的使用者查看 API。
    • 所選目標對象:選取要讓哪些特定目標對象查看 API。

    您之後可以管理目標對象的瀏覽權限,詳情請參閱「在入口網站中管理 API 的瀏覽權限」一文。

    多媒體圖像 如要在 API 頁面的 API 資訊卡上顯示圖片,請按一下「Select image」。在「Select image」對話方塊中,選取現有圖片、上傳新圖片,或提供外部圖片的網址,然後按一下「Select」。預覽 API 縮圖,然後點選「選取」。您稍後可以新增圖片,如「管理 API 資訊卡的圖片」一文所述。使用外部網址指定圖片時,系統不會將圖片上傳至素材資源;此外,整合式入口網站中圖片的載入作業將視圖片是否可用而定,可能會遭到 內容安全性政策封鎖或限制。
    類別

    新增 API 的標記類別,讓應用程式開發人員在「API」頁面上探索相關 API。如要識別類別,請按照下列步驟操作:

    • 從下拉式清單中選取類別。
    • 輸入名稱並按下 Enter 鍵,即可新增類別。 新的類別會新增至「類別」頁面,並在新增或編輯其他 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 搭配 truefalse (預設),其中 true 表示此 API 為公開瀏覽權限,可匿名瀏覽;否則,只有註冊使用者才能瀏覽。
  • IMAGE_URL 包含用於目錄項目的外部圖片網址,或儲存在入口網站中的圖片檔案的檔案路徑,例如 /files/book-tree.jpg。指定外部圖片的網址時,系統不會將圖片上傳至素材資源;此外,整合式入口網站中的圖片載入作業將視圖片的可用性而定,可能會遭到內容安全性政策封鎖或限制。
  • CALLBACK_TRUE_OR_FALSEtruefalse (預設),其中 true 需要入口網站使用者在管理應用程式時輸入網址。
  • CATEGORY_ID 與類別 ID 例如:bf6505eb-2a0f-47af-a00a-ded40ac72960。如有多個類別 ID,請以半形逗號分隔。使用 list API categories 指令取得類別 ID。
  • PUBLISHED_TRUE_OR_FALSE 搭配 truefalse (預設),其中 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:目錄項目 ID。例如:399668

編輯 API

新增 API 後,請使用 UI 或 API 呼叫進行編輯。

本節將詳細說明如何在入口網站中修改現有的 API。

如需瞭解具體修改設定,請參閱後續章節。

UI

如要編輯 API,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「編輯」圖示 編輯圖示
  5. 在「API 詳細資料」下方進行任何修改。請參閱「新增 API」中的選項說明。
  6. 按一下 [儲存]

curl

新增 API 後,請使用 update 呼叫進行編輯。

本例將逐步說明如何將入口網站中 API 的發布狀態從 true 變更為 false。如有需要,您可以在單一 API 呼叫中變更多個設定。

  1. 如要找出可用於識別每個 API 的產生 id,請按照「探索 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 文件快照,請按一下「Refresh Snapshot」(重新整理快照)
    • 如要變更用於產生 API 說明文件的文件,請在「API 說明文件」下方按一下「選取文件」,然後選取新的文件。
  7. 按一下 [儲存]

在入口網站上發布或取消發布 API

發布是指將 API 提供給應用程式開發人員使用。

使用 UI 或 curl 指令,在入口網站上發布或取消發布 API。

UI

如要在入口網站上發布或取消發布 API,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  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. 使用 update 呼叫來編輯 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 的瀏覽權限,請允許存取:

使用 UI 或 curl 指令,管理 API 在入口網站中的瀏覽權限:

UI

如要管理 API 在入口網站中的顯示設定,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  5. 選取瀏覽權限設定。如果您已註冊目標對象功能的 Beta 版,請選取下列其中一個選項:

    • 公開 (所有人都能看見),讓所有使用者都能查看該頁面。
    • 已驗證的使用者:只允許已註冊的使用者查看頁面。
    • 已選取目標對象:選取您希望能查看網頁的特定目標對象。請參閱「管理入口網站的目標對象」一文。
    否則,請選取下列其中一個選項:
    • 匿名使用者:允許所有使用者查看網頁。
    • 已註冊的使用者:只允許已註冊的使用者查看頁面。

  6. 按一下「提交」

curl

如果您已註冊目標對象管理功能的 Beta 版,請使用 UI 管理目標對象。

如果您尚未註冊目標對象管理功能,則可使用 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. 使用 update 呼叫來編輯 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 的回呼網址。請參閱「關於回呼網址」。

使用 UI 或 curl 指令管理 API 的回呼網址:

UI

如要管理 API 的回呼網址,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  5. 在「API 詳細資料」下方,選取或取消選取「要求開發人員指定回呼網址」核取方塊。
  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. 使用 update 呼叫來編輯 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 資訊卡顯示的圖片。

使用 UI 或 curl 指令管理 API 資訊卡的圖片:

UI

如要管理 API 資訊卡的圖片,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  5. 在「API 詳細資料」下方:

    • 如果未選取圖片,請按一下「選取圖片」,指定或上傳圖片。
    • 按一下「變更圖片」,指定或上傳其他圖片。
    • 按一下圖片中的「x」x即可移除。

    指定圖片時,請指定圖片的網址 (用於目錄項目) 或圖片檔案儲存在入口網站的路徑,例如 /files/book-tree.jpg。指定外部圖片的網址時,圖片不會上傳至素材資源;此外,整合式入口網站中的圖片載入作業將視圖片的可用性而定,可能會遭到內容安全性政策封鎖或限制。

  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. 使用 update 呼叫來編輯 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 的標記類別,如以下所述。
  • 編輯類別時,管理標記為類別的 API。

使用 UI 或 curl 指令,為 API 加上分類標記:

UI

如要編輯 API 時將 API 標記為某個類別,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  5. 點選「Categories」欄位,然後執行下列任一步驟:
    • 從下拉式清單中選取類別。
    • 輸入名稱並按下 Enter 鍵,即可新增類別。新的類別會新增至「類別」頁面,並在新增或編輯其他 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」指令取得類別 ID 編號。

如要編輯 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. 使用 update 呼叫來編輯 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」。

編輯顯示標題和說明

使用 UI 或 curl 指令編輯顯示標題和說明:

UI

如要編輯顯示標題和說明,請按照下列步驟操作:

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)編輯圖示
  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. 使用 update 呼叫來編輯 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

使用 UI 或 curl 指令,從入口網站中移除 API:

UI

如要從入口網站中移除 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 說明文件,請按照下列步驟操作:

UI

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 查看快照狀態。如果已過期,系統會顯示以下訊息:表示快照過期的圖示和訊息
  5. 按一下「Edit」(編輯)
  6. 執行下列任一工作:
    • 如要重新整理已過時的 OpenAPI 文件快照,請按一下「Refresh Snapshot」(重新整理快照)
    • 如要變更用於產生 API 說明文件的文件,請在 API 說明文件下方按一下「選取文件」,然後選取新的文件。
  7. 在「API 說明文件」窗格中,選取下列其中一個選項:
    • OpenAPI 文件
    • GraphQL 結構定義
  8. 按一下「選取文件」,然後選取最新版本的文件。
  9. 針對 GraphQL,請指定「端點網址」
  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 與 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 與端點 URI 的網域名稱。例如:https://demo.google.com/graphql
  • CONTENTS 與 API 說明文件內容的 Base64 編碼字串。大多數開發環境都包含 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 說明文件:

UI

curl

如要使用取得說明文件下載 API 說明文件,請按照下列步驟操作:

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:API 文件內容的 base64 編碼字串。

移除 API 說明文件

如要移除 API 說明文件,請按照下列步驟操作:

UI

  1. 存取 API 目錄
  2. 如果尚未選取「API」分頁,請按一下該分頁。
  3. 按一下要編輯的 API 列。
  4. 按一下「Edit」(編輯)
  5. 在「API 說明文件」窗格中,選取「沒有說明文件」
  6. 按一下 [儲存]

curl

如要清除現有內容,請使用 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 替換為機構名稱。例如: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。新增及管理類別,詳情請參閱下文。

探索類別

使用 UI 或 curl 指令查看入口網站中的 API。

UI

如何查看「類別」頁面:

  1. 依序選取「發布」>「入口網站」,然後選取所需入口網站。
  2. 按一下入口網站首頁上的「API 目錄」

    或者,您也可以在頂端導覽列的下拉式選單中選取「API 目錄」

  3. 按一下「類別」分頁標籤。

API 目錄中的「Categories」分頁會顯示已為入口網站定義的類別清單。

「類別」分頁會顯示類別名稱,以及已指派的 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:類別項目的 ID。例如:61c1014c-89c9-40e6-be3c-69cca3505620

新增類別

請透過下列其中一種方式新增類別:

新類別會新增至「類別」頁面,並在新增或編輯其他 API 時提供。

使用 UI 或 curl 指令新增類別:

UI

如何手動新增類別:

  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
}

編輯類別

使用 UI 或 curl 指令編輯類別:

UI

如要編輯類別,請按照下列步驟操作:

  1. 前往「類別」頁面
  2. 按一下「Edit」(編輯)
  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 與類別 ID 例如:bf6505eb-2a0f-47af-a00a-ded40ac72960。如有多個類別 ID,請以半形逗號分隔。使用 list API categories 指令取得類別 ID。
  • 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 標記。

使用 UI 或 curl 指令刪除類別:

UI

如要刪除類別,請按照下列步驟操作:

  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 與類別 ID 例如:bf6505eb-2a0f-47af-a00a-ded40ac72960。使用 list API categories 指令取得類別 ID。
  • ACCESS_TOKEN 與用於存取 Apigee Edge API 的驗證權杖。如要進一步瞭解驗證和權杖,請參閱「驗證 Edge API 存取權」。

回應酬載:

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

排解已發布 API 的問題

以下各節提供資訊,協助您排解已發布的 API 發生的特定錯誤。

錯誤:使用「Try this API」時,無法擷取傳回的錯誤

使用「Try this API」時,如果系統傳回 TypeError: Failed to fetch 錯誤,請考慮下列可能的原因和解決方法:

  • 如有混合內容錯誤,可能是因為 已知的 Swagger UI 問題而導致錯誤。一個可能的解決方法是,請務必在 OpenAPI 文件的 schemes 定義中,在 HTTP 前指定 HTTPS。例如:

    schemes:
       - https
       - http
    
  • 如果發生跨來源資源共享 (CORS) 限制錯誤,請確認 API 代理程式支援 CORS。CORS 是一種標準機制,可啟用用戶端跨來源要求。請參閱「 設定 API Proxy 以支援『試用這個 API』」一文。

錯誤:'Access-Control-Allow-Origin' 標頭包含多個值 '*, *',但只允許一個值

使用「Try this API」時,如果已存在 Access-Control-Allow-Origin 標頭,您可能會收到下列錯誤訊息:

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

如要修正這項錯誤,請修改 AssignMessage 政策,使用 <Set> 設定 CORS 標頭,而非 <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>

錯誤:不允許要求標頭欄位

使用「Try this 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 標頭新增至 CORS AssignMessage 政策的 Access-Control-Allow-Headers 部分,如「 將 Add CORS 政策附加至新的 API proxy」一文所述。

錯誤:使用 OAuth2 呼叫 API Proxy 時遭拒

Apigee 的 OAuthV2 政策會傳回權杖回應,其中包含特定不符合 RFC 的屬性。舉例來說,政策會傳回值為 BearerToken 的符記,而非預期的符合 RFC 規範的值 Bearer。使用「Try this API」時,這項無效的 token_type 回應可能會導致 Access denied 錯誤。

如要修正這個問題,您可以建立 JavaScript 或 AssignMessage 政策,將政策輸出內容轉換為符合規定的格式。詳情請參閱 不符合 RFC 的行為