Zadajte pole reťazcov ako parametre tela v Swagger

1. Prehľad

Swagger je súbor špecifikácií na dokumentovanie a popisovanie rozhraní REST API. Poskytuje tiež vzorové hodnoty parametrov koncového bodu.

V tomto tutoriáli si ukážeme, ako vytvoriť predvolenú vzorovú hodnotu pre String polia, pretože toto správanie nie je predvolene povolené.

2. Zadajte pole reťazcov ako parametre tela v Swagger

Problém nastáva, keď chceme v Swagger špecifikovať pole reťazcov ako parametre tela.

Swaggerova predvolená vzorová hodnota je trochu nepriehľadná, ako vidíme v editore Swagger:

Takže tu vidíme, že Swagger skutočne neukazuje príklad toho, ako by mal vyzerať obsah poľa. Pozrime sa, ako jeden pridať.

3. YAML

Najprv začneme zadaním poľa reťazcov v Swaggerovi pomocou YAML notácie. V časti schéma zahrňujeme typ: pole s položky Reťazec.

Na lepšie zdokumentovanie API a poučenie používateľa môžeme použiť príklad štítok ako vložiť hodnoty:

parametre: - v: popis tela: "" povinné: skutočné meno: schéma názvu: typ: položky poľa: typ: príklad reťazca: ["str1", "str2", "str3"]

Pozrime sa, ako je teraz náš displej informatívnejší:

4. Springfox

Alebo môžeme rovnaký výsledok dosiahnuť pomocou Springfoxu.

Musíme použiť Dátový typ a príklad v dátovom modeli s @ApiModel a @ApiModelProperty anotácie:

@ApiModel verejná trieda Foo {private long id; @ApiModelProperty (name = "name", dataType = "List", example = "[\" str1 \ ", \" str2 \ ", \" str3 \ "]") súkromné ​​meno zoznamu;

Potom musíme tiež anotovať Kontrolór aby Swagger ukázal na dátový model.

Takže poďme @ApiImplicitParams pre to:

@RequestMapping (method = RequestMethod.POST, value = "/ foos") @ResponseStatus (HttpStatus.CREATED) @ResponseBody @ApiImplicitParams ({@ApiImplicitParam (name = "foo", value = "Zoznam reťazcov", paramType = "telo") ", dataType =" Foo ")}) public Foo create (@RequestBody final Foo foo) {

A je to!

5. Záver

Pri dokumentovaní rozhraní REST API môžeme mať parametre, ktoré sú reťazcovými poľami. V ideálnom prípade by sme ich dokumentovali s príkladnými hodnotami.

Môžeme to urobiť v Swagger s príklad nehnuteľnosť. Alebo môžeme použiť príklad atribút anotácie v Springfox.

Ako vždy, kód je k dispozícii na GitHub.