A Swagger egy előíró és teljes keretrendszer a RESTful stílusú webszolgáltatások építésére, leírására, hívására és vizualizálására.
Az általános cél, hogy az ügyfél és a fájlrendszer ugyanolyan sebességgel frissüljön, mint a szerver. A fájl módszerei, paraméterei és modelljei szorosan integrálva vannak a szerveroldali kódba, lehetővé téve, hogy az API-k mindig szinkronban maradjanak. A Swagger soha nem tette egyszerűvé a hatékony API-k telepítését és használatát.
szemle
Először hozz létre egy új projektet a Core 3.1 ASP.NET és használd a nuget-et a Swashbuckle.AspNetCore csomag telepítésére a következő parancsol:
A Swagger szolgáltatást a startup.cs fájlban a következőképpen konfigurálja:
ConfigureServices módszer
Metódus konfigurálása
Hozzon létre egy új tesztvezérlőt a következő kóddal:
A Test Controller Felület létrehozása Termék paramétermodell objektuma a következő:
A projekt elindítása után a következő hozzáférés:http://localhost:18979/swagger/index.html, ahogy az alábbi ábrán látható:
swagger.json A tartalom a következő:
{ "openapi": "3.0.1", "info": { "title": "Az API-m", "verzió": "v1" }, "utak": { "/api/Test/Create": { "post": { "címkék": [ "Teszt" ], "requestBody": { "tartalom": { "application/json": { "séma": { "$ref": "#/komponens/séma/Termék" } }, "text/json": { "séma": { "$ref": "#/komponens/séma/Termék" } }, "application/*+json": { "séma": { "$ref": "#/komponens/séma/Termék" } } } }, "válaszok": { "200": { "leírás": "Siker", "tartalom": { "szöveg/egyszerű": { "séma": { "type": "string" } }, "application/json": { "séma": { "type": "string" } }, "text/json": { "séma": { "type": "string" } } } } } } } }, "komponens": { "sémák": { "Információ": { "type": "objektum", "tulajdonságok": { "isDiscount": { "type": "boolean" }, "isVip": { "type": "boolean", "nullable": igaz } }, "additionalProperties": hamis }, "Termék": { "type": "objektum", "tulajdonságok": { "név": { "type": "string", "nullable": igaz }, "disabled": { "type": "boolean" }, "info": { "$ref": "#/komponens/séma/információ" } }, "additionalProperties": hamis } } }
}
Megállapítottuk, hogy mind a Boole-típus, mind a nullable Boole-típusok alapértelmezett: true,A napi fejlesztésben, ha a bool nincs hozzárendelve, az alapértelmezett fal legyen, a null típusnak pedig null legyen, megpróbáljuk swaggert használni a commit szimulálására, ha a paraméterek nem tűnnek észre,Balesetek hajlamosak。 (Múlt héten a swaggert használtam, hogy szimuláljam, hogy egy bool paraméter alapértelmezetten igaz, így a WeChat üzenetek minden emberhez eljutottak.)
Hogyan rendelhetek egy Boolean típust alapértelmezett hamisnak? Mi a helyzet, ha null típusokat null típusnak neveznének ki?
Hozz létre egy új osztályt, amely az ISchemaFilter-től örököl, és a kód a következő:
És amikor hozzáadod a swagger szolgáltatást, add hozzá az AddSwaggerGen szűrőt az alábbiakkal:
Néhány speciális bool mező esetén az alapértelmezett értéket true értékre kell állítani, és hozzáadható[DefaultValue(true)]A jellemzők a következők:
{ "név": "húr", "letiltott": igaz, "info": { "isDiscount": hamis, "isVip": null }
} swagger.json Az akté a következő:
{ "openapi": "3.0.1", "info": { "title": "Az API-m", "verzió": "v1" }, "utak": { "/api/Test/Create": { "post": { "címkék": [ "Teszt" ], "requestBody": { "tartalom": { "application/json": { "séma": { "$ref": "#/komponens/séma/Termék" } }, "text/json": { "séma": { "$ref": "#/komponens/séma/Termék" } }, "application/*+json": { "séma": { "$ref": "#/komponens/séma/Termék" } } } }, "válaszok": { "200": { "leírás": "Siker", "tartalom": { "szöveg/egyszerű": { "séma": { "type": "string" } }, "application/json": { "séma": { "type": "string" } }, "text/json": { "séma": { "type": "string" } } } } } } } }, "komponens": { "sémák": { "Információ": { "type": "objektum", "tulajdonságok": { "isDiscount": { "type": "boolean", "default": hamis }, "isVip": { "type": "boolean", "default": null, "nullable": igaz } }, "additionalProperties": hamis }, "Termék": { "type": "objektum", "tulajdonságok": { "név": { "type": "string", "nullable": igaz }, "disabled": { "type": "boolean", "alapértelmezett": igaz }, "info": { "$ref": "#/komponens/séma/információ" } }, "additionalProperties": hamis } } }
} (Vége)
|