Swagger is een voorschrijvend en compleet kader voor het bouwen, beschrijven, aanroepen en visualiseren van RESTful-achtige webservices.
Het algemene doel is dat de client en het bestandssysteem op dezelfde snelheid updaten als de server. De methoden, parameters en modellen van het bestand zijn nauw geïntegreerd in de server-side code, waardoor API's altijd synchroon kunnen blijven. Swagger heeft het nog nooit makkelijker gemaakt om krachtige API's te implementeren en te gebruiken.
recensie
Maak eerst een nieuw project aan ASP.NET Core 3.1 en gebruik nuget om het Swashbuckle.AspNetCore-pakket te installeren met het volgende commando:
Configureer de Swagger-service in het startup.cs-bestand als volgt:
ConfigureServices-methode
Configure-methode
Maak een nieuwe Testcontroller aan met de volgende code:
Het Test Controller Create interface Product parameter model-object is als volgt:
Na het starten van het project kunt u toegang krijgen:http://localhost:18979/swagger/index.html, zoals getoond in de onderstaande figuur:
swagger.json De inhoud is als volgt:
{ "openapi": "3.0.1", "info": { "titel": "Mijn API", "versie": "v1" }, "paden": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/componenten/schema's/Product" } }, "text/json": { "schema": { "$ref": "#/componenten/schema's/Product" } }, "application/*+json": { "schema": { "$ref": "#/componenten/schema's/Product" } } } }, "reacties": { "200": { "beschrijving": "Succes", "content": { "tekst/vlak": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } } } }, "componenten": { "schema's": { "Informatie": { "type": "object", "eigenschappen": { "isDiscount": { "type": "booleaans" }, "isVip": { "type": "booleaan", "Ongedaan": waar } }, "additionalProperties": vals }, "Product": { "type": "object", "eigenschappen": { "naam": { "type": "snaar", "Ongedaan": waar }, "uitgeschakeld": { "type": "booleaans" }, "info": { "$ref": "#/componenten/schema's/Informatie" } }, "additionalProperties": vals } } }
}
We ontdekten dat zowel Booleaanse types als null-bare Booleaanse types standaard volgen: waar,In dagelijkse ontwikkeling, als de bool niet is toegewezen, moet de standaard false zijn, en het null-type standaard naar null, proberen we swagger te gebruiken om de commit te simuleren, als de parameters niet worden opgemerkt,Ongelukken zijn gevoelig。 (Vorige week gebruikte ik Swagger om te simuleren dat een bool-parameter standaard waar was, waardoor WeChat-berichten naar iedereen werden gestuurd.)
Hoe wijs ik standaard een Boolean-type toe aan false toe? Hoe zit het met null-types die null toegewezen krijgen?
Maak een nieuwe klasse aan die erft van ISchemaFilter, en de code is als volgt:
En bij het toevoegen van de swagger-service voeg je de filter AddSwaggerGen als volgt toe:
Voor sommige speciale bool-velden moet de standaardwaarde op waar worden gezet en kan deze worden toegevoegd[DefaultValue(waar)]De kenmerken zijn als volgt:
{ "naam": "snaar", "uitgeschakeld": waar, "info": { "isDiscount": onwaar, "isVip": nul }
} swagger.json Het dossier is als volgt:
{ "openapi": "3.0.1", "info": { "titel": "Mijn API", "versie": "v1" }, "paden": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/componenten/schema's/Product" } }, "text/json": { "schema": { "$ref": "#/componenten/schema's/Product" } }, "application/*+json": { "schema": { "$ref": "#/componenten/schema's/Product" } } } }, "reacties": { "200": { "beschrijving": "Succes", "content": { "tekst/vlak": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } } } }, "componenten": { "schema's": { "Informatie": { "type": "object", "eigenschappen": { "isDiscount": { "type": "booleaan", "default": onwaar }, "isVip": { "type": "booleaan", "default": null, "Ongedaan": waar } }, "additionalProperties": vals }, "Product": { "type": "object", "eigenschappen": { "naam": { "type": "snaar", "Ongedaan": waar }, "uitgeschakeld": { "type": "booleaan", "default": waar }, "info": { "$ref": "#/componenten/schema's/Informatie" } }, "additionalProperties": vals } } }
} (Einde)
|