Die beiden folgenden Anmerkungen dienen zum Hinzufügen von Metadaten zu swagger-ui-Dokumenten. Welches sollte man bevorzugen und warum?
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) {
}
}
Es gibt einen großen Unterschied zwischen den beiden. Sie werden beide verwendet, um Metadaten zu swagger hinzuzufügen, aber sie fügen unterschiedliche Metadaten hinzu.
@ApiParam
steht für Parameter. Sie wird normalerweise in der API-Ressourcenanforderungsklasse definiert.
Beispiel für @ApiParam:
/users?age=50
hiermit können das Alter der Parameter und die folgenden Felder definiert werden:
@ApiModelProperty
wird zum Hinzufügen von Eigenschaften für Modelle verwendet. Sie werden es in Ihrer Modellklasse in den Modelleigenschaften verwenden.
Beispiel:
modell Benutzer hat Name und Alter als Eigenschaften: Name und Alter, dann können Sie für jede Eigenschaft Folgendes definieren:
Für alter:
Überprüfen Sie die Felder in den Swagger-Objekten:
@ 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