Swagger er en foreskrivende og komplet ramme til at bygge, beskrive, kalde og visualisere RESTful-lignende webtjenester.
Det overordnede mål er, at klienten og filsystemet opdaterer med samme hastighed som serveren. Metoderne, parametrene og modellerne for filen er tæt integreret i server-side koden, hvilket gør det muligt for API'er at forblive synkroniserede hele tiden. Swagger har aldrig gjort det nemmere at implementere og bruge kraftfulde API'er.
anmeldelse
Først opretter du et nyt projekt ASP.NET Core 3.1 og bruger nuget til at installere Swashbuckle.AspNetCore-pakken med følgende kommando:
Konfigurér Swagger-tjenesten i startup.cs-filen som følger:
ConfigureTServices-metoden
Configure metode
Opret en ny testcontroller med følgende kode:
Test Controller Create-grænsefladen Produktparametermodel-objektet er som følger:
Efter at have startet projektet, kan du få adgang til:http://localhost:18979/swagger/index.html, som vist i figuren nedenfor:
swagger.json Indholdet er som følger:
{ "openapi": "3.0.1", "info": { "titel": "Mit API", "version": "v1" }, "Stier": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "indhold": { "application/json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } }, "text/json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } }, "application/*+json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } } } }, "svar": { "200": { "beskrivelse": "Succes", "indhold": { "tekst/klar": { "skema": { "type": "string" } }, "application/json": { "skema": { "type": "string" } }, "text/json": { "skema": { "type": "string" } } } } } } } }, "komponenter": { "skemaer": { "Information": { "type": "objekt", "egenskaber": { "isDiscount": { "type": "boolesk" }, "isVip": { "type": "boolesk", "Nullable": sandt } }, "additionalProperties": false }, "Produkt": { "type": "objekt", "egenskaber": { "name": { "type": "string", "Nullable": sandt }, "deaktiveret": { "type": "boolesk" }, "info": { "$ref": "#/komponenter/skemaer/Information" } }, "additionalProperties": false } } }
}
Vi fandt, at både booleske typer og nullible booleske typer som standard er: sand,I daglig udvikling, hvis bool ikke er tildelt, bør standarden være falsk, og null-typen bør som standard være null, prøver vi at bruge swagger til at simulere committen, hvis parametrene ikke bemærkes,Ulykker er udsatte。 (I sidste uge brugte jeg Swagger til at simulere, at en bool-parameter var sand som standard, hvilket fik WeChat-beskeder til at blive sendt til alle.)
Hvordan tildeler jeg en boolesk type til false som standard? Hvad med null-typer, der bliver tildelt null?
Opret en ny klasse, der arver fra ISchemaFilter, og koden er som følger:
Og når du tilføjer swagger-tjenesten, tilføj filteret AddSwaggerGen som følger:
For nogle specielle bool-felter skal standardværdien sættes til sand og kan tilføjes[DefaultValue(true)]Karakteristikaene er som følger:
{ "navn": "snor", "Handicappet": Sandt, "info": { "isDiscount": falsk, "isVip": null }
} swagger.json Filen er som følger:
{ "openapi": "3.0.1", "info": { "titel": "Mit API", "version": "v1" }, "Stier": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "indhold": { "application/json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } }, "text/json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } }, "application/*+json": { "skema": { "$ref": "#/komponenter/skemaer/Produkt" } } } }, "svar": { "200": { "beskrivelse": "Succes", "indhold": { "tekst/klar": { "skema": { "type": "string" } }, "application/json": { "skema": { "type": "string" } }, "text/json": { "skema": { "type": "string" } } } } } } } }, "komponenter": { "skemaer": { "Information": { "type": "objekt", "egenskaber": { "isDiscount": { "type": "boolesk", "default": falsk }, "isVip": { "type": "boolesk", "default": null, "Nullable": sandt } }, "additionalProperties": false }, "Produkt": { "type": "objekt", "egenskaber": { "name": { "type": "string", "Nullable": sandt }, "deaktiveret": { "type": "boolesk", "default": sandt }, "info": { "$ref": "#/komponenter/skemaer/Information" } }, "additionalProperties": false } } }
} (Slut)
|