Swagger je predpisový a kompletný rámec na vytváranie, opisovanie, volanie a vizualizáciu webových služieb v štýle RESTful.
Celkovým cieľom je, aby sa klient a súborový systém aktualizovali rovnakou rýchlosťou ako server. Metódy, parametre a modely súboru sú úzko integrované do serverového kódu, čo umožňuje, aby API zostávali neustále synchronizované. Swagger nikdy neuľahčil nasadzovanie a používanie výkonných API.
revízia
Najprv vytvorte nový projekt ASP.NET Core 3.1 a použite nuget na inštaláciu balíka Swashbuckle.AspNetCore pomocou nasledujúceho príkazu:
Nakonfigurujte službu Swagger v startup.cs súbore nasledovne:
Metóda ConfigureServices
Metóda Configure
Vytvorte nový testovací kontrolér s nasledujúcim kódom:
Rozhranie Test Controller Create Objekt modelu parametra produktu je nasledovný:
Po spustení projektu pristup:http://localhost:18979/swagger/index.html, ako je znázornené na obrázku nižšie:
swagger.json Obsah je nasledovný:
{ "openapi": "3.0.1", "info": { "title": "My API", "verzia": "v1" }, "paths": { "/api/Test/Create": { "post": { "tagy": [ "Test" ], "requestBody": { "content": { "application/json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } }, "text/json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } }, "application/*+json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } } } }, "odpovede": { "200": { "opis": "Úspech", "content": { "text/plain": { "schéma": { "typ": "struna" } }, "application/json": { "schéma": { "typ": "struna" } }, "text/json": { "schéma": { "typ": "struna" } } } } } } } }, "components": { "schemas": { "Informácie": { "typ": "objekt", "vlastnosti": { "isDiscount": { "Type": "Boolean" }, "isVip": { "typ": "boolean", "nulovateľné": pravda } }, "additionalProperties": false }, "Product": { "typ": "objekt", "vlastnosti": { "meno": { "typ": "struna", "nulovateľné": pravda }, "disabled": { "Type": "Boolean" }, "info": { "$ref": "#/komponenty/schémy/Informácie" } }, "additionalProperties": false } } }
}
Zistili sme, že oba Booleovské aj nulovateľné Booleovské typy štandardne zodpovedajú: pravda,V dennom vývoji, ak bool nie je priradený, predvolený by mal byť false a null typ by mal byť predvolený na null, snažíme sa použiť Swagger na simuláciu commitu, ak si parametre nevšimneme,Nehody sú náchylné。 (Minulý týždeň som použil Swagger, aby som simuloval, že bool parameter je predvolene pravdivý, čo spôsobilo, že správy na WeChate boli posielané všetkým ľuďom.)
Ako môžem predvolene priradiť Booleovskému typu falošné? A čo nullové typy, ktoré sú priradené null?
Vytvorte novú triedu, ktorá dedí z ISchemaFilter, a kód je nasledovný:
A pri pridávaní swagger služby pridajte filter AddSwaggerGen nasledovne:
Pre niektoré špeciálne bool polia je potrebné nastaviť predvolenú hodnotu na true a môže sa pridávať[DefaultValue(true)]Charakteristiky sú nasledovné:
{ "meno": "šnúrka", "postihnutý": pravda, "info": { "isDiscount": false, "isVip": null }
} swagger.json Súbor je nasledovný:
{ "openapi": "3.0.1", "info": { "title": "My API", "verzia": "v1" }, "paths": { "/api/Test/Create": { "post": { "tagy": [ "Test" ], "requestBody": { "content": { "application/json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } }, "text/json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } }, "application/*+json": { "schéma": { "$ref": "#/komponenty/schémy/Produkt" } } } }, "odpovede": { "200": { "opis": "Úspech", "content": { "text/plain": { "schéma": { "typ": "struna" } }, "application/json": { "schéma": { "typ": "struna" } }, "text/json": { "schéma": { "typ": "struna" } } } } } } } }, "components": { "schemas": { "Informácie": { "typ": "objekt", "vlastnosti": { "isDiscount": { "typ": "boolean", "predvolené": nepravdivé }, "isVip": { "typ": "boolean", "default": null, "nulovateľné": pravda } }, "additionalProperties": false }, "Product": { "typ": "objekt", "vlastnosti": { "meno": { "typ": "struna", "nulovateľné": pravda }, "disabled": { "typ": "boolean", "default": pravda }, "info": { "$ref": "#/komponenty/schémy/Informácie" } }, "additionalProperties": false } } }
} (Koniec)
|