Swagger je predpisan in celovit okvir za gradnjo, opisovanje, klicanje in vizualizacijo spletnih storitev v slogu RESTful.
Glavni cilj je, da se odjemalec in datotečni sistem posodabljata z enako hitrostjo kot strežnik. Metode, parametri in modeli datoteke so tesno integrirani v strežniško kodo, kar omogoča, da so API-ji ves čas usklajeni. Swagger nikoli ni olajšal nameščanja in uporabe zmogljivih API-jev.
pregled
Najprej ustvarite nov projekt ASP.NET Core 3.1 in uporabite nuget za namestitev paketa Swashbuckle.AspNetCore z naslednjim ukazom:
Konfigurirajte storitev Swagger v startup.cs datoteki takole:
Metoda Conconfigure Services
Metoda konfiguracije
Ustvarite nov testni krmilnik z naslednjo kodo:
Vmesnik za ustvarjanje vmesnika Test Controller Build Objekt modela parametrov izdelka je naslednji:
Po začetku projekta lahko dostopate:http://localhost:18979/swagger/index.html, kot je prikazano na spodnji sliki:
swagger.json Vsebina je naslednja:
{ "openapi": "3.0.1", "info": { "title": "My API", "različica": "v1" }, "poti": { "/api/Test/Create": { "post": { "oznake": [ "Test" ], "requestBody": { "vsebina": { "application/json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } }, "text/json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } }, "application/*+json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } } } }, "odzivi": { "200": { "opis": "Uspeh", "vsebina": { "text/plain": { "shema": { "tip": "vrvica" } }, "application/json": { "shema": { "tip": "vrvica" } }, "text/json": { "shema": { "tip": "vrvica" } } } } } } } }, "komponente": { "schemas": { "Informacije": { "tip": "predmet", "lastnosti": { "isDiscount": { "Tip": "Boolean" }, "isVip": { "tip": "Boolean", "ničljivo": resnično } }, "dodatneLastnosti": napačno }, "Product": { "tip": "predmet", "lastnosti": { "ime": { "tip": "vrvica", "ničljivo": resnično }, "disabled": { "Tip": "Boolean" }, "info": { "$ref": "#/komponente/sheme/Informacije" } }, "dodatneLastnosti": napačno } } }
}
Ugotovili smo, da tako Booleovi kot ničelni Booleovi tipi privzeto izkazujeta: resnično,Pri vsakodnevnem razvoju, če bool ni dodeljen, naj bo privzeto napačno, ničelni tip pa privzeto na null, poskušamo uporabiti swagger za simulacijo commita, če parametri niso opaženi,Nesreče so pogoste。 (Prejšnji teden sem uporabil Swagger, da sem simuliral, da je bool parameter privzeto resničen, zaradi česar so bila WeChat sporočila poslana vsem ljudem.)
Kako privzeto dodelim Booleov tip na false (fals)? Kaj pa, če so ničelni tipi dodeljeni kot null?
Ustvarite nov razred, ki podeduje ISchemaFilter, in koda je naslednja:
In ko dodajate swagger storitev, dodajte filter AddSwaggerGen, kot sledi:
Za nekatera posebna bool polja je treba privzeto vrednost nastaviti na true in jo je mogoče dodati[DefaultValue(true)]Značilnosti so naslednje:
{ "ime": "vrvica", "invalid": resnično, "info": { "isDiscount": napačno, "isVip": null }
} swagger.json Datoteka je naslednja:
{ "openapi": "3.0.1", "info": { "title": "My API", "različica": "v1" }, "poti": { "/api/Test/Create": { "post": { "oznake": [ "Test" ], "requestBody": { "vsebina": { "application/json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } }, "text/json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } }, "application/*+json": { "shema": { "$ref": "#/komponente/sheme/Izdelek" } } } }, "odzivi": { "200": { "opis": "Uspeh", "vsebina": { "text/plain": { "shema": { "tip": "vrvica" } }, "application/json": { "shema": { "tip": "vrvica" } }, "text/json": { "shema": { "tip": "vrvica" } } } } } } } }, "komponente": { "schemas": { "Informacije": { "tip": "predmet", "lastnosti": { "isDiscount": { "tip": "Boolean", "privzeto": napačno }, "isVip": { "tip": "Boolean", "privzeto": nič, "ničljivo": resnično } }, "dodatneLastnosti": napačno }, "Product": { "tip": "predmet", "lastnosti": { "ime": { "tip": "vrvica", "ničljivo": resnično }, "disabled": { "tip": "Boolean", "privzeto": resnično }, "info": { "$ref": "#/komponente/sheme/Informacije" } }, "dodatneLastnosti": napačno } } }
} (Konec)
|