Cloud Endpoints 支援使用 支援版本的 OpenAPI 規範說明的 API。
您可以使用任何開放給大眾使用的 REST 架構 (如 Django 或 Jersey) 來實作 API。
您可以在 JSON 或 YAML 檔案 (稱為「OpenAPI 文件」) 中說明 API。本頁面說明使用 OpenAPI 的優點、示範基本的 OpenAPI 文件,同時也提供能協助您開始使用 OpenAPI 的其他資訊。
支援的 OpenAPI 版本
Cloud Endpoints 支援下列 OpenAPI 版本:
- OpenAPI 2.0 (前身為 Swagger)
- OpenAPI 3.0.x
如要查看各版本的正式規格,請前往 OpenAPI Initiative。
支援修補程式版本
OpenAPI 規格指出,修補程式版本 (例如 3.0.1、3.0.2) 只會修正錯誤或提供說明,不會新增功能。因此,Cloud Endpoints 支援 3.0 的所有修補程式版本。
術語
在 Cloud Endpoints 說明文件中,OpenAPI 3.x 是指所有支援的 OpenAPI 3 版本。
優點
使用 OpenAPI 的主要優點之一是方便製作說明文件。只要有說明 API 的 OpenAPI 文件,就能產生 API 的參考說明文件。
使用 OpenAPI 還有其他優點。例如,您可以:
- 產生使用數十種語言的用戶端程式庫。
- 產生伺服器虛設常式。
- 使用專案來驗證符合程度和產生範例。
OpenAPI 文件的基本結構
OpenAPI 文件說明您 REST API 的介面,並定義以下資訊:
- API 名稱和說明。
- API 中的各個端點 (路徑)。
- 呼叫端驗證方式。
OpenAPI 文件的結構取決於您使用的 OpenAPI 版本。下列範例說明 OpenAPI 2.0 和 OpenAPI 3.x 的結構。
OpenAPI 2.0
如果您是第一次使用 OpenAPI,請瀏覽 Swagger Basic Structure 網站。此網站提供 OpenAPI 文件範本 (也就是 Swagger 規範),並簡要說明檔案中的每個區段。下列範例說明這項基本結構:
swagger: "2.0" info: title: API_ID optional-string description: "Get the name of an airport from its three-letter IATA code." version: "1.0.0" host: API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog schemes: - "https" paths: "/airportName": get: description: "Get the airport name for a given IATA code." operationId: "airportName" parameters: - name: iataCode in: query required: true type: string responses: 200: description: "Success." schema: type: string 400: description: "The IATA code is invalid or missing."
OpenAPI 3.x
如果您是第一次使用 OpenAPI,請參閱 OpenAPI 規範,其中提供 OpenAPI 文件範本,並說明檔案中的每個區段。
以下範例說明這個基本結構:
openapi: 3.0.4 info: title: API_ID optional-string description: Get the name of an airport from its three-letter IATA code version: 1.0.0 servers: - url: https://API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog x-google-endpoint: {} x-google-api-management: backend: BACKEND_NAME address: https://BACKEND_URL/airportNameGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" x-google-backend: BACKEND_NAME paths: /airportName: get: summary: Get the airport name for a given IATA code operationId: airportName responses: '200': description: A successful response content: application/json: schema: type: string parameters: - name: iataCode in: query required: true schema: type: string
除了基本架構之外,本教學課程所用的範例程式碼 openapi.yaml 檔案也說明以下事項:
- 如何設定路徑以利使用 API 金鑰。
- 驗證的各種安全性配置。
- OpenAPI 2.0 和 OpenAPI 3.x 的 OpenAPI 擴充功能。
產生 OpenAPI 文件
視您使用的語言而定,您或許能產生一份 OpenAPI 文件。Java 提供同時適用於 Jersey 和 Spring 的開放原始碼專案,可利用註解產生 OpenAPI 文件。此外,Java 也提供一款 Maven 外掛程式。Python 使用者可能會對 flask-swagger 專案感興趣,而 swagger-node-express 則是適用於 Node 開發人員。
OpenAPI 社群持續開發新工具,協助撰寫 OpenAPI 文件,還能為某些語言自動產生這類文件。如需完整的工具及整合功能清單,請參閱 Swagger 網站。