Swagger to przepisowy i kompletny framework do budowania, opisywania, wzywania i wizualizacji usług internetowych w stylu RESTful.
Głównym celem jest, aby klient i system plików aktualizowały się z taką samą prędkością jak serwer. Metody, parametry i modele pliku są ściśle zintegrowane z kodem po stronie serwera, co pozwala API pozostawać w synchronizacji przez cały czas. Swagger nigdy nie ułatwił wdrażania i korzystania z potężnych API.
recenzja
Najpierw stwórz nowy projekt ASP.NET Core 3.1 i użyj nuget do zainstalowania pakietu Swashbuckle.AspNetCore za pomocą następującego polecenia:
Skonfiguruj usługę Swagger w pliku startup.cs w następujący sposób:
Metoda ConkonfigurServices.
Metoda konfiguracji
Stwórz nowy kontroler testów z następującym kodem:
Interfejs Kontroler testowy Create Obiekt modelu parametrów produktu wygląda następująco:
Po rozpoczęciu projektu dostęp na:http://localhost:18979/swagger/index.html, jak pokazano na poniższym rysunku:
swagger.json Treść jest następująca:
{ "openapi": "3.0.1", "info": { "title": "My API", "Wersja": "V1" }, "ścieżki": { "/api/Test/Create": { "post": { "tagi": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } }, "text/json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } } } }, "responses": { "200": { "opis": "Sukces", "content": { "text/plain": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } } } }, "components": { "schemas": { "Informacje": { "type": "object", "własności": { "isDiscount": { "Type": "Boolean" }, "isVip": { "type": "boolean", "Nullable": prawdziwe } }, "dodatkoweWłaściwości": fałszywe }, "Product": { "type": "object", "własności": { "name": { "type": "string", "Nullable": prawdziwe }, "disabled": { "Type": "Boolean" }, "info": { "$ref": "#/components/schemas/Information" } }, "dodatkoweWłaściwości": fałszywe } } }
}
Stwierdziliśmy, że zarówno typy boolowska, jak i zerowe typy boolowskie domyślnie do: prawdziwe,W codziennym rozwoju, jeśli bool nie jest przypisany, domyślny powinien być fałszywy, a typ null domyślnie null, próbujemy użyć Swaggera do symulacji zatwierdzenia, jeśli parametry nie są zauważane,Wypadki są podatne na。 (W zeszłym tygodniu użyłem Swagger, aby zasymulować, że domyślnie jest prawdziwy parametr bool, przez co wiadomości na WeChat były wysyłane do wszystkich osób.)
Jak domyślnie przypisać typ boolowski do fals? A co z przypisaniem typów null?
Stwórz nową klasę, która dziedziczy ISchemaFilter, a kod wygląda następująco:
A przy dodawaniu usługi swagger, dodaj filtr AddSwaggerGen w następujący sposób:
Dla niektórych specjalnych pól boolowych domyślna wartość musi być ustawiona na true i można ją dodać[DefaultValue(true)]Charakterystyka przedstawia się następująco:
{ "imię": "struna", "niepełnosprawny": prawda, "info": { "isDiscount": fałszywe, "isVip": null }
} swagger.json Plik wygląda następująco:
{ "openapi": "3.0.1", "info": { "title": "My API", "Wersja": "V1" }, "ścieżki": { "/api/Test/Create": { "post": { "tagi": [ "Test" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } }, "text/json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } }, "application/*+json": { "schema": { "$ref": "#/komponenty/schematy/Produkt" } } } }, "responses": { "200": { "opis": "Sukces", "content": { "text/plain": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } } } }, "components": { "schemas": { "Informacje": { "type": "object", "własności": { "isDiscount": { "type": "boolean", "domyślne": fałszywe }, "isVip": { "type": "boolean", "domyślne": null, "Nullable": prawdziwe } }, "dodatkoweWłaściwości": fałszywe }, "Product": { "type": "object", "własności": { "name": { "type": "string", "Nullable": prawdziwe }, "disabled": { "type": "boolean", "domyślne": prawdziwe }, "info": { "$ref": "#/components/schemas/Information" } }, "dodatkoweWłaściwości": fałszywe } } }
} (Koniec)
|