Skip to content

api ​

API 工具。提供在解析和导出过程中修改 API 端点元数据的方法。

用法 ​

properties
method.additional.param=groovy:```
api.setParam("version", "1.0", true, "API version")
```

方法 ​

基本信息 ​

方法返回类型说明
api.name()String?获取 API 名称
api.path()String?获取 API 路径
api.setPath(path)void设置 API 路径
api.method()String?获取 HTTP 方法(GET、POST 等)
api.setMethod(method)void设置 HTTP 方法
api.description()String?获取 API 描述
api.setDescription(desc)void设置 API 描述
api.appendDesc(desc)void追加 API 描述

参数 ​

方法返回类型说明
api.setParam(name, defaultValue, required, desc)void添加/设置查询参数
api.setFormParam(name, defaultValue, required, desc)void添加/设置表单参数
api.setPathParam(name, defaultValue, desc)void添加/设置路径参数

请求头 ​

方法返回类型说明
api.setHeader(name, defaultValue, required, desc)void添加/设置请求头
api.setResponseHeader(name, defaultValue, required, desc)void添加/设置响应头

响应 ​

方法返回类型说明
api.setResponseCode(code)void设置响应状态码
api.appendResponseBodyDesc(desc)void追加响应体描述
api.setResponseBodyClass(className)void设置响应体类名

示例 ​

添加通用参数 ​

properties
method.additional.param=groovy:```
api.setParam("version", "1.0", true, "API version")
api.setParam("timestamp", "", false, "Request timestamp")
```

添加请求头 ​

properties
method.additional.header=groovy:```
api.setHeader("X-Request-ID", "", false, "Unique request identifier")
api.setHeader("Authorization", "", true, "Bearer token")
```

修改 API 路径 ​

properties
method.path=groovy:```
def originalPath = api.path()
if (originalPath && !originalPath.startsWith("/api")) {
    api.setPath("/api" + originalPath)
}
return api.path()
```

添加响应信息 ​

properties
method.additional.response=groovy:```
api.setResponseCode(200)
api.appendResponseBodyDesc("Returns the created resource")
api.setResponseHeader("X-Resource-ID", "", true, "ID of the created resource")
```

条件参数添加 ​

properties
method.additional.param=groovy:```
if (it.hasAnn("org.springframework.web.bind.annotation.GetMapping")) {
    api.setParam("page", "1", false, "Page number")
    api.setParam("size", "20", false, "Page size")
}
```

追加描述 ​

properties
method.description=groovy:```
def baseDesc = it.doc() ?: ""
api.setDescription(baseDesc)
api.appendDesc("\n\n**Note:** This API requires authentication.")
```

完整 API 设置 ​

properties
method.after=groovy:```
def name = it.name()

if (name.startsWith("create")) {
    api.setMethod("POST")
    api.setResponseCode(201)
    api.appendResponseBodyDesc("Created resource")
} else if (name.startsWith("update")) {
    api.setMethod("PUT")
    api.setResponseCode(200)
} else if (name.startsWith("delete")) {
    api.setMethod("DELETE")
    api.setResponseCode(204)
} else if (name.startsWith("get") || name.startsWith("list") || name.startsWith("find")) {
    api.setMethod("GET")
    api.setResponseCode(200)
}

api.setHeader("Content-Type", "application/json", true, "Content type")
api.setHeader("Accept", "application/json", true, "Accepted response type")
```

注意事项 ​

  • api 工具仅在方法相关的规则上下文中可用
  • 通过 api 方法所做的更改会影响导出的 API 文档
  • 在 method.additional.* 规则中使用 api 来添加额外的元数据

相关链接 ​

  • it - 当前上下文对象
  • config - 配置访问

基于 Apache-2.0 许可发布