@ApiParam oder @ApiModelProperty in stolzieren?
Beiden folgenden Anmerkungen, die Arbeit für das hinzufügen von Metadaten zu swagger-ui-docs. Was sollte man bevorzugt 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) {
}
}
InformationsquelleAutor membersound | 2017-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es ein riesiger Unterschied zwischen den beiden. Sie sind beide verwendet, um Metadaten hinzuzufügen, swagger, aber Sie fügen verschiedene Metadaten.
@ApiParam
ist für die Parameter. Es ist in der Regel definiert in der API-Ressource-request-Klasse.Beispiel von @ApiParam:
kann es verwendet werden, um zu definieren, parameter Alter und die folgenden Felder:
@ApiModelProperty
wird verwendet für das hinzufügen von Eigenschaften für Modelle.Verwenden Sie es in Ihrem model-Klasse auf die Modell-Eigenschaften.
Beispiel:
Modell, Benutzer-name und Alter-Eigenschaften: name und Alter dann für jede Eigenschaft können Sie Folgendes definieren:
Für Alter:
Überprüfen Sie die Felder aus, jeder bezeichnen, der in Fors Objekte:
@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
spring-mvc
bei einembean
als get-query-parameter-Modell: welche soll ich verwenden auf der bean-Felder? DaMyReq
ist sowohl ein "API-Ressource" und einen "Modell-Klasse" (der Frühling ordnet automatisch die get-query-Parametern, die Bohne, die hinter der Oberfläche).Ich denke, würden Sie beide dann, weil Sie wollen, haben Eigenschaften und Parameter sowohl in Ihrem swagger-ui/swagger json und wie oben erwähnt haben beide unterschiedliche Verwendungen.
Ok, habe ich wohl falsch verstanden Ihre Erklärung. So verdeutlichen: wenn Sie sprechen von einem "model-Klasse", ist Sie eigentlich der "webservice-response-Klasse", richtig? Und damit die
@ApiParam
angewendet werden soll, auf dem Anfrage, und die@ApiModelProperty
auf die Reaktion Felder. Richtig? SoMyReq
ist natürlich kein model-Klasse und damit sollte ich verwenden ApiParam.Ja, @ApiParam ist auf Antrag auf die Parameter, die vom Benutzer gesendet
Ich habe gerade festgestellt
@ApiParam(hidden = true)
funktioniert nur für@GetMapping
servlets. Der Parameter ist weiterhin angezeigt für@PostMapping
. Ich also alles geändert-Anmerkungen zu@ApiModelProperty(hidden = true)
auf beide Anfrage + Antwort Bohnen. Das blendet die Felder für beide get+post.InformationsquelleAutor slal