验证 API 规范

本页面适用于 ApigeeApigee Hybrid

API Hub 提供了一个内置的 Spectral linter(验证器),用于验证 API 的 OpenAPI 规范。向 API 版本添加 OpenAPI 规范后,验证器(默认启用)会很快验证规范,并在 Google Cloud 控制台中报告发现结果。

停用规范验证

默认情况下,linter 处于启用状态。如需停用 linter,请在 Google Cloud 控制台中进入 API Hub > 设置 > 操作页面,然后在执行 lint 请求部分中停用执行 lint 请求选项。

风格指南

风格指南是 API Hub 用于验证 OpenAPI 规范的一组规则。API Hub 使用默认风格指南来验证 OpenAPI 规范。如需了解默认风格指南规则,请参阅 OpenAPI 规则

上传新的风格指南

控制台

如需上传新的风格指南,请执行以下步骤:

  1. 扩展默认风格指南,以创建新风格。如需了解详情,请参阅创建规则集
  2. 在 Google Cloud 控制台中,进入 API Hub > 设置 > 操作页面。

  3. 执行 lint 请求部分中,点击 Upload new style document。系统会显示 Upload new style document 窗格。
  4. 上传新的风格文档(在第 1 步中创建),然后点击保存

REST API

如需上传用于执行 lint 请求的新风格指南,请向以下 API 发出 PATCH 请求:

https://apihub.googleapis.com/v1/projects/PROJECT/locations/LOCATION/plugins/standard-linter/styleGuide?update_mask=contents

如需详细了解此 API,请参阅 UpdateStyleGuide

以下示例展示了用于上传风格指南的 API 调用。

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"name":"projects/test-project-1/locations/us-central1/plugins/standard-linter/styleGuide",
"contents":{  "contents": "ZXh0ZW5kczogWyJzcGVjdHJhbDpvYXMiXQo=",
  "mimeType": "text/yaml"}}' \ 
-X PATCH \
https://apihub.googleapis.com/v1/projects/test-project-1/locations/us-central1/plugins/standard-linter/styleGuide?update_mask=contents  

下载默认风格指南

如需下载 API Hub 用于执行 lint 请求的默认风格指南,请执行以下步骤:

  1. 在 Google Cloud 控制台中,进入 API Hub > 设置 > 操作页面。

  2. 执行 lint 请求部分中,点击 Download original style document。此操作会将默认风格文档下载到您的本地系统。

下载最新的风格指南

控制台

如需下载 API Hub 当前用于执行 lint 请求的风格指南,请执行以下步骤:

  1. 在 Google Cloud 控制台中,进入 API Hub > 设置 > 操作页面。

  2. 执行 lint 请求部分中,点击 Download latest style document。此操作会将默认风格文档下载到您的本地系统。

REST API

如需下载 API Hub 当前用于执行 lint 请求的风格指南,请向以下 API 发出 GET 请求:

https://apihub.googleapis.com/v1/projects/PROJECT/locations/LOCATION/plugins/standard-linter/styleGuide:contents

如需详细了解此 API,请参阅 GetStyleGuide

以下示例展示了用于下载当前风格指南的 API 调用。

curl -X \
GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://apihub.googleapis.com/v1/projects/test-project-1/locations/us-central1/plugins/standard-linter/styleGuide:contents