> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API 管理

> 管理 API 端口的 API 發現、伺服器回應、速率限制和 CORS。

可以在管理控制檯中瀏覽 API 並管理對它們的存取。單擊導覽列上的 **API**，檢視存取 API 的文件和範例。使用端口中的設定來管理 API 的資源、使用者和伺服器設定。

本部分包含與管理 API 相關的主題。

## 發現

該應用程式的 API 基於 OpenAPI 規範，並且有完整的文件記錄和可發現性。可以從標準 JavaScript、符合 OpenAPI 的應用程式或支援 OData 標準的任何應用程式存取 API。以下部分展示如何使用這些標準來發現 API。

### 服務檔案

服務文件預設是 JSON 格式的所有 API 的簡單清單。服務文件從服務根傳回，所有請求都在服務根發出，包括中繼資料發現請求。以下是服務根的範例：

`http://MyServer:MyPort/connector/MyAPIPortName/api.rsc/`

要檢索更詳細的資訊，請向中繼資料 URL 發出請求。

### 中繼資料 URL

應用程式透過 OData 中繼資料文件 URL 向 OData 使用者公開其 API 的功能。中繼資料文件以 XML 形式傳回，包含列資料型別、資源的鍵和其他資訊。可以透過將 `$metadata` 附加到服務根來存取完整的中繼資料資源，如下例所示：

`http://MyServer:MyPort/connector/MyAPIPortName/api.rsc/$metadata`

要存取資源的中繼資料，請將 `$metadata` 附加到資源 URL：

`http://MyServer:MyPort/connector/MyAPIPortName/api.rsc/Cars/$metadata`

### OpenAPI 定義

OpenAPI (Swagger) 定義是為透過應用程式顯示的資料來源生成的。

要取得 Swagger 定義，請將 `$swagger` 附加到服務根目錄，如以下範例所示：

`http://MyServer:MyPort/connector/MyAPIPortName/api.rsc/$swagger`

## 伺服器回應

以下是對 API 資源的典型伺服器回應清單，以及何時會出現此類回應的描述。

| 回應                     | 描述                                                |
| ---------------------- | ------------------------------------------------- |
| 200 OK                 | 伺服器處理了該請求，沒有出現錯誤。                                 |
| 201 Created            | 請求成功，伺服器建立了指定的資源。                                 |
| 204 No Content         | 如果請求的資源具有空值，或服務應用 `return=minimal` 首選項，則請求將傳回此狀態。 |
| 400 Bad Request        | 請求無法被理解或缺少必需的參數。                                  |
| 401 Unauthorized       | 使用者未經身分驗證或未獲得存取此資源的授權。                            |
| 403 Forbidden          | 對此資源的存取被拒絕。                                       |
| 404 Not Found          | 該資源不存在。                                           |
| 405 Method Not Allowed | 此資源不允許指定的 HTTP 方法。                                |
| 429 Too Many Requests  | 使用者在給定時間內傳送了太多請求，或者超出了最大並行請求數。                    |
| 501 Not Implemented    | 伺服器不支援完成請求所需的功能。當伺服器無法識別請求方法並且無法支援任何資源時，將傳回此回應。   |

## 速率限制

可以配置每個使用者的使用限制和伺服器範圍的預設值。有關如何配置速率限制的詳細資訊，請參閱[預設速率限制（每使用者）](./api-config#default-rate-limits-per-user)。

### 使用者特定的限制

要配置單個使用者的速率限制，請導航到**使用者**索引標籤，選擇一個使用者，然後單擊**編輯**。可以配置以下選項：

* **權限**：選擇允許使用者存取的 HTTP 方法：GET、POST、PUT/PATCH/MERGE 或 DELETE。它們分別對應於 SELECT、INSERT、UPDATE 和 DELETE 語句。
* **最大請求數**：輸入該使用者每小時的最大請求數。值為 0 允許使用者每小時無限制存取。
* **最大並行請求數**：輸入可以同時傳送的最大請求數。值為 0 允許使用者無限制並行請求。

<Note>
  使用者特定的速率限制會覆蓋伺服器預設值。使用者設定之一的空值會使用伺服器預設值。
</Note>

## 跨域資源共享

可以在**伺服器**索引標籤上配置跨域資源共享 (CORS)。CORS 允許基於瀏覽器的用戶端連線到知行之橋。如果沒有 CORS，基於瀏覽器的指令碼將無法連線到知行之橋，因為瀏覽器強制執行同源策略。此策略限制用戶端指令碼和文件載入其來源之外的資源。指令碼的來源由協議、主機和端口組成。

有關如何配置 CORS 的詳細資訊，請參閱 [CORS](./api-config#cross-origin-resource-sharing-cors)。
