Swagger är ett föreskrivande och komplett ramverk för att bygga, beskriva, anropa och visualisera RESTful-liknande webbtjänster.
Det övergripande målet är att klienten och filsystemet ska uppdateras i samma hastighet som servern. Metoder, parametrar och modeller för filen är tätt integrerade i serversidans kod, vilket gör att API:erna kan vara synkroniserade hela tiden. Swagger har aldrig gjort det enklare att distribuera och använda kraftfulla API:er.
recension
Skapa först ett nytt projekt ASP.NET Core 3.1 och använd nuget för att installera Swashbuckle.AspNetCore-paketet med följande kommando:
Konfigurera Swagger-tjänsten i startup.cs-filen enligt följande:
ConfigureServices-metoden
Konfigurera-metoden
Skapa en ny testkontroller med följande kod:
Test Controller Create-gränssnittet Produktparametermodellobjekt är följande:
Efter att projektet har startats, gå åt:http://localhost:18979/swagger/index.html, som visas i figuren nedan:
swagger.json Innehållet är som följer:
{ "openapi": "3.0.1", "info": { "titel": "Mitt API", "version": "v1" }, "Vägar": { "/api/Test/Create": { "post": { "taggar": [ "Test" ], "requestBody": { "innehåll": { "application/json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } }, "text/json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } } } }, "svar": { "200": { "beskrivning": "Framgång", "innehåll": { "text/klar": { "schema": { "typ": "string" } }, "application/json": { "schema": { "typ": "string" } }, "text/json": { "schema": { "typ": "string" } } } } } } } }, "komponenter": { "schemas": { "Information": { "typ": "objekt", "egenskaper": { "isDiscount": { "typ": "booleskt" }, "isVip": { "typ": "boolesk", "Nullbar": Sant } }, "additionalProperties": falskt }, "Produkt": { "typ": "objekt", "egenskaper": { "name": { "typ": "sträng", "Nullbar": Sant }, "inaktiverad": { "typ": "booleskt" }, "info": { "$ref": "#/komponenter/scheman/Information" } }, "additionalProperties": falskt } } }
}
Vi fann att både booleska typer och nullerbara booleska typer som standard är: sann,I daglig utveckling, om bool inte är tilldelad, ska standarden vara falsk, och nulltypen ska defaulta till null, försöker vi använda swagger för att simulera commiten, om parametrarna inte märks,Olyckor är benägna。 (Förra veckan använde jag swagger för att simulera att en bool-parameter var sann som standard, vilket gjorde att WeChat-meddelanden skickades till alla.)
Hur sätter jag en boolesk typ på false som standard? Hur är det med att null-typer tilldelas null?
Skapa en ny klass som ärver från ISchemaFilter, och koden är följande:
Och när du lägger till swagger-tjänsten, lägg till filtret AddSwaggerGen enligt följande:
För vissa speciella boolfält måste standardvärdet sättas till true och kan läggas till[DefaultValue(true)]Kännetecknen är följande:
{ "namn": "snöre", "Funktionsnedsatt": Sant, "info": { "isDiscount": falskt, "isVip": null }
} swagger.json Filen är följande:
{ "openapi": "3.0.1", "info": { "titel": "Mitt API", "version": "v1" }, "Vägar": { "/api/Test/Create": { "post": { "taggar": [ "Test" ], "requestBody": { "innehåll": { "application/json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } }, "text/json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/komponenter/scheman/Produkt" } } } }, "svar": { "200": { "beskrivning": "Framgång", "innehåll": { "text/klar": { "schema": { "typ": "string" } }, "application/json": { "schema": { "typ": "string" } }, "text/json": { "schema": { "typ": "string" } } } } } } } }, "komponenter": { "schemas": { "Information": { "typ": "objekt", "egenskaper": { "isDiscount": { "typ": "boolesk", "default": falskt }, "isVip": { "typ": "boolesk", "default": null, "Nullbar": Sant } }, "additionalProperties": falskt }, "Produkt": { "typ": "objekt", "egenskaper": { "name": { "typ": "sträng", "Nullbar": Sant }, "inaktiverad": { "typ": "boolesk", "default": sant }, "info": { "$ref": "#/komponenter/scheman/Information" } }, "additionalProperties": falskt } } }
} (Slut)
|