设置 OpenAPI basePath 属性 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

设置 OpenAPI basePath 属性

OpenAPI 2.0 中,您可以使用 basePath 属性来提供 paths 属性中定义的每个路径之前的一个或多个路径部分。由于 API Gateway 具有多种表达资源路径的方式,因此导入 API 功能可提供以下选项用于解释导入过程中的 basePath 属性:ignore、prepend 和 split。

OpenAPI 3.0 中,basePath 不再是顶级属性。相反,作为惯例,API Gateway 使用服务器变量。导入 API 功能提供了相同选项用于解释导入过程中的基本路径。按如下所示标识基本路径:

  • 如果 API 不包含任何 basePath 变量,则导入 API 功能将检查 server.url 字符串以查看其是否包含 "/" 之外的路径。如果包含,则将该路径用作基本路径。

  • 如果 API 仅包含一个 basePath 变量,则导入 API 功能将使用其作为基本路径,即使该变量未在 server.url 中进行引用。

  • 如果 API 包含多个 basePath 变量,则导入 API 功能将仅使用第一个变量作为基本路径。

忽略

如果 OpenAPI 文件的 basePath 值为 /a/b/cpaths 属性包含 /e/f,则以下 POSTPUT 请求:

POST /restapis?mode=import&basepath=ignore

PUT /restapis/api_id?basepath=ignore

将在 API 中生成以下资源:

  • /

  • /e

  • /f

效果是将 basePath 视为不存在,所有声明的 API 资源均相对于主机提供。例如,如果您有一个自定义域名,其 API 映射不包含基础路径和表示生产阶段的阶段值,则可以使用这一选项。

注意

API Gateway 自动为您创建一个根资源,即使该资源未在定义文件中明确声明。

如未指定,basePathignore 为默认值。

前置

如果 OpenAPI 文件的 basePath 值为 /a/b/cpaths 属性包含 /e/f,则以下 POSTPUT 请求:

POST /restapis?mode=import&basepath=prepend

PUT /restapis/api_id?basepath=prepend

将在 API 中生成以下资源:

  • /

  • /a

  • /a/b

  • /a/b/c

  • /a/b/c/e

  • /a/b/c/f

效果是将 basePath 视为指定其他资源 (不含方法) 并将这些资源添加到声明的资源组中。例如,如果不同的团队负责一个 API 的不同部分且 basePath 可以为每个团队所负责 API 部分引用路径位置,则可以使用这一选项。

注意

API Gateway 自动为您创建中间资源,即使这些资源未在定义中明确声明。

Split

如果 OpenAPI 文件的 basePath 值为 /a/b/cpaths 属性包含 /e/f,则以下 POSTPUT 请求:

POST /restapis?mode=import&basepath=split

PUT /restapis/api_id?basepath=split

将在 API 中生成以下资源:

  • /

  • /b

  • /b/c

  • /b/c/e

  • /b/c/f

效果是将最顶层的路径部分 /a 视为每个资源路径的开始,并在 API 自身内创建其他资源 (不含方法)。例如,如果 a 是一个您想在 API 中使用的阶段名称,则可以使用这一选项。