發布 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 參考文件,並使用「試用這個 API」面板發出 API 要求及查看輸出內容。「試用此 API」可搭配不安全的端點,或使用基本、API 金鑰或 OAuth 驗證的安全端點,具體取決於 OpenAPI 文件中定義的安全方法。OAuth 支援下列流程:授權碼、密碼和用戶端憑證。

API 參考文件頁面,附有圖說,說明如何授權 API 呼叫、取消固定「Try this API」面板、下載相關規格,以及執行 API。

按一下「全螢幕」 ,展開「試用這個 API」面板。展開面板後,您就能以各種格式查看 curl 呼叫和程式碼範例,例如 HTTP、Python、Node.js 等,如下圖所示。

展開「Try this API」面板

GraphQL 探索工具

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

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

如要進一步瞭解 GraphQL,請參閱 graphql.org

入口網站中的 GraphQL 探索工具

什麼是快照?

在 API 的整個生命週期中,每個 OpenAPI 或 GraphQL 文件都是可靠來源。在 API 生命週期的每個階段 (從開發、發布到監控),您都會使用同一份文件。修改文件時,請務必留意變更對 API 在其他生命週期階段的影響,詳情請參閱「修改文件會發生什麼事?」一文。

發布 API 時,您會對 OpenAPI 或 GraphQL 文件進行快照,以便產生 API 參考文件。該快照代表文件的特定版本。如果您修改文件,可以決定再次擷取文件快照,以便在 API 參考文件文件中反映最新變更。

關於回呼網址

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

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

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

設定 API Proxy 以支援「試用這個 API」

使用 OpenAPI 文件發布 API 之前,您需要設定 API Proxy,支援在 SmartDocs API 參考文件的「試用這個 API」面板中提出要求,方法如下:

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

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

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

下表根據驗證存取權,彙整了支援 SmartDocs API 參考文件「試用這個 API」面板的 API Proxy 設定需求。

驗證存取權 政策設定規定
無或 API 金鑰 在 API Proxy 中新增 CORS 支援。為方便起見,請使用 GitHub 提供的 範例 CORS 解決方案,或按照「 在 API Proxy 中新增 CORS 支援」一文所述步驟操作。
基本驗證 請按照下列步驟操作:
  1. 在 API Proxy 中新增 CORS 支援。為方便起見,請使用 GitHub 提供的 範例 CORS 解決方案,或按照「 在 API Proxy 中新增 CORS 支援」一文所述步驟操作。
  2. 在「Add CORS AssignMessage policy」中,確認 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 Proxy 中新增 CORS 支援」一文所述步驟操作。
  2. 在「Add CORS AssignMessage policy」中,確認 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_TOKEN,並將值設為 nextPageToken。例如:7zcqrin9l6xhi4nbrb9

新增 API

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

UI

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

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

    「Add an API product to the catalog」(將 API 產品新增至目錄) 對話方塊隨即顯示。

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

  5. 點選「下一步」。系統會顯示「API 詳細資料」頁面。

  6. 在入口網站上設定 API 參考文件內容和顯示方式:

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

    如何使用 OpenAPI 文件:

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

    如何使用 GraphQL 結構定義:

    1. 選取「GraphQL Schema」(GraphQL 結構定義)
    2. 按一下「選取文件」
    3. 找出並選取 GraphQL 結構定義。
    4. 按一下「選取」

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

    API 瀏覽權限

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

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

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

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

    如要管理目標對象瀏覽權限,請參閱「管理入口網站中的 API 瀏覽權限」。

    多媒體圖像 如要在「API」頁面的 API 資訊卡上顯示圖片,請按一下「選取圖片」。在「選取圖片」對話方塊中,選取現有圖片、上傳新圖片或提供外部圖片的網址,然後按一下「選取」。預覽 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_FALSE,其中 truefalse (預設) true 需要入口網站使用者在管理應用程式時輸入網址。
  • CATEGORY_ID 換成類別 ID。例如:bf6505eb-2a0f-47af-a00a-ded40ac72960。如有多個類別 ID,請以半形逗號分隔。使用「list API categories」指令取得類別 ID。
  • PUBLISHED_TRUE_OR_FALSE,其中 truefalse (預設) 表示 API 可公開使用。true發布後,您可以允許所有使用者、已通過驗證的使用者或特定使用者存取
  • 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. 點選編輯圖示「Edit」(編輯)
  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 文件快照,請按一下「重新整理快照」
    • 如要變更用於產生 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 版,請使用使用者介面管理目標對象。

如果您尚未註冊使用目標對象管理功能,系統會使用 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. 按一下「類別」欄位,然後執行下列其中一個步驟:
    • 從下拉式選單中選取類別。
    • 輸入名稱並按下 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 文件快照,請按一下「重新整理快照」
    • 如要變更用於產生 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

如要使用 get documentation 下載 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 目錄中的「類別」分頁會顯示為入口網站定義的類別清單。

「類別」分頁,顯示類別名稱,以及指派的 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。使用「列出 API 類別」指令取得類別 ID。
  • 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 問題所致。其中一個可能的解決方法是,確保您在 OpenAPI 文件的 schemes 定義中,先指定 HTTPS,再指定 HTTP。例如:

    schemes:
       - https
       - http
    
  • 如為跨源資源共享 (CORS) 限制錯誤,請確認 API Proxy 支援 CORS。CORS 是一種標準機制,可啟用用戶端跨源要求。請參閱「 設定 API Proxy 以支援『試用這個 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 政策,使用 <Set> 設定 CORS 標頭,而非 <Add>,如下列摘錄內容所示。詳情請參閱「CORS Error : header contains multiple values '*, *', but only one is allowed」。

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

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

使用「Try this API」(試用這個 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

在本例中,您需要在 CORS AssignMessage 政策的 Access-Control-Allow-Headers 區段中新增 content-type 標頭,如「 將 Add CORS 政策附加至新的 API Proxy」一文所述。

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

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

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