Swagger ist ein vorschreibendes und vollständiges Framework zum Aufbau, Schreiben, Anrufen und Visualisieren von RESTful-ähnlichen Webdiensten.
Das übergeordnete Ziel ist, dass Client und Dateisystem mit der gleichen Geschwindigkeit wie der Server aktualisiert werden. Die Methoden, Parameter und Modelle der Datei sind eng in den serverseitigen Code integriert, sodass APIs jederzeit synchron bleiben. Swagger hat es nie einfacher gemacht, leistungsstarke APIs bereitzustellen und zu nutzen.
Rezension
Erstellen Sie zunächst ein neues Projekt ASP.NET Core 3.1 und verwenden Sie nuget, um das Swashbuckle.AspNetCore-Paket mit folgendem Befehl zu installieren:
Konfigurieren Sie den Swagger-Dienst in der startup.cs-Datei wie folgt:
ConfigureServices-Methode
Configure Method
Erstellen Sie einen neuen Testcontroller mit folgendem Code:
Das Test-Controller-Create-Schnittstelle Produktparametermodell-Objekt ist wie folgt:
Nach Beginn des Projekts greifen Sie auf Folgendes zu:http://localhost:18979/swagger/index.html, wie in der untenstehenden Abbildung dargestellt:
swagger.json Der Inhalt ist wie folgt:
{ "openapi": "3.0.1", "info": { "Titel": "Meine API", "Version": "v1" }, "Pfade": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } }, "text/json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } } } }, "responses": { "200": { "Beschreibung": "Erfolg", "content": { "Text/Klar": { "schema": { "Typ": "String" } }, "application/json": { "schema": { "Typ": "String" } }, "text/json": { "schema": { "Typ": "String" } } } } } } } }, "Komponenten": { "Schemas": { "Informationen": { "Typ": "Objekt", "Eigenschaften": { "isDiscount": { "type": "boolean" }, "isVip": { "Typ": "Boolesch", "Nullierbar": wahr } }, "additionalProperties": falsch }, "Produkt": { "Typ": "Objekt", "Eigenschaften": { "name": { "Typ": "String", "Nullierbar": wahr }, "disabled": { "type": "boolean" }, "info": { "$ref": "#/Komponenten/Schemata/Informationen" } }, "additionalProperties": falsch } } }
}
Wir stellten fest, dass sowohl boolesche als auch nullable boolesche Typen standardmäßig folgendes sind: wahr,In der täglichen Entwicklung sollte der Bool falsch sein, wenn der Bool nicht zugewiesen ist, und der Null-Typ standardmäßig auf null, versuchen wir, Swagger zu verwenden, um den Commit zu simulieren, falls die Parameter nicht bemerkt werden,Unfälle sind anfällig。 (Letzte Woche habe ich Swagger genutzt, um zu simulieren, dass ein Bool-Parameter standardmäßig wahr ist, wodurch WeChat-Nachrichten an alle Personen weitergeleitet werden.)
Wie weise ich standardmäßig einen booleschen Typ falsch zu? Wie wäre es, wenn Null-Typen Null zugewiesen werden?
Erstelle eine neue Klasse, die von ISchemaFilter erbt, und der Code ist wie folgt:
Und beim Hinzufügen des Swagger-Dienstes fügen Sie den Filter AddSwaggerGen wie folgt hinzu:
Für einige spezielle Bool-Felder muss der Standardwert auf true gesetzt und kann hinzugefügt werden[DefaultValue(true)]Die Merkmale sind wie folgt:
{ "name": "string", "behindert": wahr, "info": { "isDiscount": falsch, "isVip": null }
} swagger.json Die Akte ist wie folgt:
{ "openapi": "3.0.1", "info": { "Titel": "Meine API", "Version": "v1" }, "Pfade": { "/api/Test/Create": { "post": { "Tags": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } }, "text/json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/Komponenten/Schemas/Produkt" } } } }, "responses": { "200": { "Beschreibung": "Erfolg", "content": { "Text/Klar": { "schema": { "Typ": "String" } }, "application/json": { "schema": { "Typ": "String" } }, "text/json": { "schema": { "Typ": "String" } } } } } } } }, "Komponenten": { "Schemas": { "Informationen": { "Typ": "Objekt", "Eigenschaften": { "isDiscount": { "Typ": "Boolesch", "Standard": falsch }, "isVip": { "Typ": "Boolesch", "Standard": null, "Nullierbar": wahr } }, "additionalProperties": falsch }, "Produkt": { "Typ": "Objekt", "Eigenschaften": { "name": { "Typ": "String", "Nullierbar": wahr }, "disabled": { "Typ": "Boolesch", "Standard": wahr }, "info": { "$ref": "#/Komponenten/Schemata/Informationen" } }, "additionalProperties": falsch } } }
} (Ende)
|