Swagger er et foreskrivende og komplett rammeverk for å bygge, beskrive, ringe og visualisere RESTful-lignende webtjenester.
Det overordnede målet er at klienten og filsystemet skal oppdatere i samme hastighet som serveren. Metodene, parameterne og modellene til filen er tett integrert i serverkoden, slik at API-ene kan være synkroniserte til enhver tid. Swagger har aldri gjort det enklere å implementere og bruke kraftige API-er.
anmeldelse
Først oppretter du et nytt prosjekt ASP.NET Core 3.1 og bruker nuget for å installere Swashbuckle.AspNetCore-pakken med følgende kommando:
Konfigurer Swagger-tjenesten i startup.cs-filen som følger:
ConfigureServices-metoden
Configure metode
Lag en ny testkontroller med følgende kode:
Test Controller Create grensesnittet Product parameter model-objektet er som følger:
Etter å ha startet prosjektet, få tilgang til:http://localhost:18979/swagger/index.html, som vist i figuren nedenfor:
swagger.json Innholdet er som følger:
{ "openapi": "3.0.1", "info": { "tittel": "Min API", "versjon": "v1" }, "Paths": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "innhold": { "application/json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } }, "text/json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } }, "application/*+json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } } } }, "responses": { "200": { "beskrivelse": "Suksess", "innhold": { "tekst/klar": { "skjema": { "type": "string" } }, "application/json": { "skjema": { "type": "string" } }, "text/json": { "skjema": { "type": "string" } } } } } } } }, "komponenter": { "skjemaer": { "Informasjon": { "type": "objekt", "egenskaper": { "isDiscount": { "type": "boolsk" }, "isVip": { "type": "boolsk", "null mulig": sant } }, "tilleggsegenskaper": falsk }, "Produkt": { "type": "objekt", "egenskaper": { "name": { "type": "string", "null mulig": sant }, "disabled": { "type": "boolsk" }, "info": { "$ref": "#/komponenter/skjemaer/Informasjon" } }, "tilleggsegenskaper": falsk } } }
}
Vi fant at både boolske typer og nullbare boolske typer automatisk er: sann,I daglig utvikling, hvis bool ikke er tildelt, skal standarden være falsk, og null-typen skal som standard være null, prøver vi å bruke Swagger for å simulere commiten, hvis parametrene ikke blir lagt merke til,Ulykker er utsatt for ulykker。 (Forrige uke brukte jeg Swagger for å simulere at en bool-parameter var sann som standard, noe som førte til at WeChat-meldinger ble sendt til alle.)
Hvordan tilordner jeg en boolsk type til false som standard? Hva med null-typer som blir tildelt null?
Opprett en ny klasse som arver fra ISchemaFilter, og koden er som følger:
Og når du legger til swagger-tjenesten, legg til filteret AddSwaggerGen som følger:
For noen spesielle bool-felt må standardverdien settes til true og kan legges til[DefaultValue(true)]Kjennetegnene er som følger:
{ "Navn": "Streng", "Disabled": Sant, "info": { "isDiscount": falskt, "isVip": null }
} swagger.json Filen er som følger:
{ "openapi": "3.0.1", "info": { "tittel": "Min API", "versjon": "v1" }, "Paths": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "innhold": { "application/json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } }, "text/json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } }, "application/*+json": { "skjema": { "$ref": "#/komponenter/skjemaer/Produkt" } } } }, "responses": { "200": { "beskrivelse": "Suksess", "innhold": { "tekst/klar": { "skjema": { "type": "string" } }, "application/json": { "skjema": { "type": "string" } }, "text/json": { "skjema": { "type": "string" } } } } } } } }, "komponenter": { "skjemaer": { "Informasjon": { "type": "objekt", "egenskaper": { "isDiscount": { "type": "boolsk", "default": falsk }, "isVip": { "type": "boolsk", "default": null, "null mulig": sant } }, "tilleggsegenskaper": falsk }, "Produkt": { "type": "objekt", "egenskaper": { "name": { "type": "string", "null mulig": sant }, "disabled": { "type": "boolsk", "default": sant }, "info": { "$ref": "#/komponenter/skjemaer/Informasjon" } }, "tilleggsegenskaper": falsk } } }
} (Slutt)
|