Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 47519|Odpowiedź: 4

[ASP.NET] ASP.NET domyślnych parametrów interfejsu Swagger w Core(8).

[Skopiuj link]
Opublikowano 08.05.2021 13:27:02 | | | |
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

ASP.NET Rdzeń (7) Dogłębna analiza kodu źródłowego frameworka
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ręcznie uzyskuje metodę wstrzykiwania obiektów
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pięć) opiera się na rozproszonych transakcjach CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtr Core(4) zunifikowany walidacja modelu modelu ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Rdzeń (iii) Dynamicznie twórz instancje za pomocą ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Rdzeń (2) Restart aplikacji za pomocą kodu
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) korzysta z buforowania Redis
https://www.itsvse.com/thread-9393-1-1.html

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)






Poprzedni:Java używa JDBC do połączenia problemu URL sqlite
Następny:Kafka ręcznie ustawia offset offset
Opublikowano 22.09.2021 20:45:47 |
Naucz się uczyć...
Opublikowano 22.09.2021 20:59:49 |
Uczę się uczyć się, stare żelazo, jest tyle aktualizacji, że nie nadążam
Opublikowano 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Tryb zaawansowany
Opublikowano 16.05.2023 17:20:36 |
Naucz się uczyć
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com