Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 47519|Antwort: 4

[ASP.NET] ASP.NET Grube der Standardparameter der Swagger-Benutzeroberfläche in Core(8).

[Link kopieren]
Veröffentlicht am 08.05.2021 13:27:02 | | | |
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

ASP.NET Core (7) Tiefgehende Analyse des Framework-Quellcodes
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI erhält manuell die Methode zum Einschleusen von Objekten
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (fünf) basiert auf CAP-verteilten Transaktionen
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-Filter einheitliche ModelState-Modellvalidierung
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Erstellen Sie Instanzen dynamisch mit ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Die Anwendung per Code neu starten
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) verwendet Redis-Caching
https://www.itsvse.com/thread-9393-1-1.html

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)






Vorhergehend:Java verwendet JDBC, um das Sqlite-URL-Problem zu verbinden
Nächster:Kafka stellt den Offset manuell ein
Veröffentlicht am 22.09.2021 20:45:47 |
Lerne zu lernen...
Veröffentlicht am 22.09.2021 20:59:49 |
Lernen zu lernen, alter Eisen, es gibt so viele Updates, ich komme nicht mehr mit.
Veröffentlicht am 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Fortgeschrittener Modus
Veröffentlicht am 16.05.2023 17:20:36 |
Lernen lernen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com