wake-up-neo.com

@ApiParam oder @ApiModelProperty in swagger verwenden?

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) {

   }
}
10
membersound

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:

  • paramType: query
  • name Alter
  • beschreibung: Alter des Benutzers
  • erforderlich: wahr

@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:

  • typ: Ganzzahl,
  • format ": int64,
  • beschreibung: Alter des Benutzers,

Ü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

14
slal