Swagger yra įpareigojanti ir išsami sistema, skirta kurti, aprašyti, skambinti ir vizualizuoti RESTful stiliaus žiniatinklio paslaugas.
Bendras tikslas yra, kad klientas ir failų sistema būtų atnaujinti tokiu pačiu greičiu kaip ir serveris. Failo metodai, parametrai ir modeliai yra glaudžiai integruoti į serverio kodą, todėl API visada gali būti sinchronizuojamos. "Swagger" niekada nepalengvino galingų API diegimo ir naudojimo.
Peržiūra
Pirmiausia sukurkite naują projektą ASP.NET Core 3.1 ir naudokite nuget, kad įdiegtumėte Swashbuckle.AspNetCore paketą su šia komanda:
Sukonfigūruokite "Swagger" paslaugą startup.cs faile taip:
ConfigureServices metodas
Konfigūravimo metodas
Sukurkite naują bandymo valdiklį su šiuo kodu:
Bandymo valdiklio kūrimo sąsaja Produkto parametrų modelio objektas yra toks:
Pradėję projektą, pasiekite:http://localhost:18979/swagger/index.html, kaip parodyta toliau pateiktame paveikslėlyje:
swagger.json Turinys yra toks:
{ "openapi": "3.0.1", "info": { "title": "Mano API", "version": "v1" }, "keliai": { "/api/Test/Create": { "post": { "žymos": [ "Testas" ], "requestBody": { "turinys": { "application/json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } }, "text/json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } }, "application/*+json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } } } }, "atsakymai": { "200": { "description": "Sėkmė", "turinys": { "tekstas/paprastas": { "schema": { "type": "eilutė" } }, "application/json": { "schema": { "type": "eilutė" } }, "text/json": { "schema": { "type": "eilutė" } } } } } } } }, "komponentai": { "schemos": { "Informacija": { "type": "objektas", "ypatybės": { "isDiscount": { "type": "Bulio logika" }, "isVip": { "type": "Bulio logika", "nulinis": teisinga } }, "additionalProperties": klaidinga }, "Produktas": { "type": "objektas", "ypatybės": { "vardas": { "type": "eilutė", "nulinis": teisinga }, "išjungta": { "type": "Bulio logika" }, "info": { "$ref": "#/komponentai/schemos/informacija" } }, "additionalProperties": klaidinga } } }
}
Nustatėme, kad tiek Bulio tipai, tiek nuliniai Bulio tipai pagal numatytuosius nustatymus yra: true,Kasdieniame kūrime, jei bool nepriskirtas, numatytasis turėtų būti false, o nulinis tipas turėtų būti nulinis, bandome naudoti swagger, kad imituotume įsipareigojimą, jei parametrai nepastebimi,Nelaimingi atsitikimai yra linkę。 (Praėjusią savaitę aš naudojau swagger, kad imituočiau, kad bool parametras buvo teisingas pagal nutylėjimą, todėl WeChat pranešimai buvo siunčiami visiems žmonėms.)
Kaip pagal numatytuosius nustatymus priskirti Bulio logikos tipą klaidingam? O kaip dėl nulinių tipų priskyrimo nuliniams?
Sukurkite naują klasę, kuri paveldi iš ISchemaFilter, ir kodas yra toks:
Pridėdami swagger paslaugą, pridėkite filtrą AddSwaggerGen taip:
Kai kuriuose specialiuose registracijos laukuose numatytoji reikšmė turi būti nustatyta kaip teisinga ir ją galima pridėti[DefaultValue(true)]Charakteristikos yra šios:
{ "name": "eilutė", "neįgalus": tiesa, "info": { "isDiscount": klaidinga, "isVip": null }
} swagger.json Failas yra toks:
{ "openapi": "3.0.1", "info": { "title": "Mano API", "version": "v1" }, "keliai": { "/api/Test/Create": { "post": { "žymos": [ "Testas" ], "requestBody": { "turinys": { "application/json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } }, "text/json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } }, "application/*+json": { "schema": { "$ref": "#/komponentai/schemos/produktas" } } } }, "atsakymai": { "200": { "description": "Sėkmė", "turinys": { "tekstas/paprastas": { "schema": { "type": "eilutė" } }, "application/json": { "schema": { "type": "eilutė" } }, "text/json": { "schema": { "type": "eilutė" } } } } } } } }, "komponentai": { "schemos": { "Informacija": { "type": "objektas", "ypatybės": { "isDiscount": { "type": "Bulio logika", "default": false }, "isVip": { "type": "Bulio logika", "default": null, "nulinis": teisinga } }, "additionalProperties": klaidinga }, "Produktas": { "type": "objektas", "ypatybės": { "vardas": { "type": "eilutė", "nulinis": teisinga }, "išjungta": { "type": "Bulio logika", "default": true }, "info": { "$ref": "#/komponentai/schemos/informacija" } }, "additionalProperties": klaidinga } } }
} (Pabaiga)
|