1. 概述
Swagger 是一套規範,用於文檔化和描述 REST API。它還提供端點參數的示例值。
在本教程中,我們將演示如何生成默認示例值,用於 String 數組,因為此行為默認未啓用。
2. 指定字符串數組作為Body參數在Swagger中
問題在於,當我們希望在Swagger中指定字符串數組作為Body參數時。
Swagger的默認示例值有點不透明,如你所見在 Swagger編輯器 中:
因此,我們看到Swagger並沒有真正展示數組內容應該是什麼樣子。讓我們看看如何添加一個。
3. YAML
首先,我們使用 YAML 記法在 Swagger 中指定字符串數組。在 schema 部分,我們包含 並且 。
為了更好地記錄 API 並指導用户,我們可以使用 標籤來演示如何插入值:
parameters:
- in: body
description: ""
required: true
name: name
schema:
type: array
items:
type: string
example: ["str1", "str2", "str3"]
讓我們看看我們的顯示現在更加信息豐富:
4. Springdoc
或者,我們可以使用 Springdoc 達到相同的效果。
我們需要在數據模型中使用 type: array 和 example 以及 @Schema 註解:
@Schema
public class Foo {
private long id;
@Schema(name = "name", type = "array", example = "[\"str1\", \"str2\", \"str3\"]")
private List<String> name;
}
之後,還需要對 Controller 進行註解,以便 Swagger 指向數據模型。
因此,我們使用 @Parameters 來實現:
@RequestMapping(method = RequestMethod.POST, value = "/foos")
@ResponseStatus(HttpStatus.CREATED)
@ResponseBody
@Parameters({ @Parameter(name = "foo", description = "字符串列表") })
public Foo create(@RequestBody final Foo foo) {
}
這就是全部了!
5. 結論
在REST API 文檔中,我們可能會遇到字符串數組作為參數。理想情況下,我們應該使用示例值進行文檔記錄。
我們可以使用 Swagger 中的example 屬性來實現。或者,我們可以在 Springdoc 中使用example 註解屬性。