次の両方のアノテーションは、メタデータをswagger-uiドキュメントに追加するために機能します。どちらを優先すべきか、そしてその理由は?
public class MyReq {
@ApiModelProperty(required = true, value = "the persons name")
@ApiParam(required = true, value = "the persons name")
private String name;
}
@RestController
public class MyServlet {
@RequestMapping("/")
public void test(MyReq req) {
}
}
2つの間に大きな違いがあります。どちらもメタデータをswaggerに追加するために使用されますが、異なるメタデータを追加します。
@ApiParam
はパラメーター用です。通常、APIリソースリクエストクラスで定義されます。
@ApiParamの例:
/users?age=50
パラメータの経過時間と次のフィールドを定義するために使用できます。
@ApiModelProperty
は、モデルのプロパティを追加するために使用されます。モデルプロパティのモデルクラスで使用します。
例:
モデルユーザーは、プロパティとして名前と年齢を持ちます。名前と年齢は、プロパティごとに次を定義できます。
年齢について:
Swaggerオブジェクトでそれぞれ示すフィールドを確認します。
@ ApiModelProperty- https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md#529-property-object
@ApiParam- https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md#524-parameter-object