Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 47519|Antwoord: 4

[ASP.NET] ASP.NET put van de standaardparameters van de Swagger UI in Core(8).

[Link kopiëren]
Geplaatst op 08-05-2021 13:27:02 | | | |
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

ASP.NET Kern (7) Diepgaande analyse van de broncode van het framework
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI verkrijgt handmatig de methode om objecten te injecteren
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (vijf) is gebaseerd op CAP-gedistribueerde transacties
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-filter uniforme ModelState-modelvalidatie
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Maakt dynamisch instanties aan met behulp van ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Herstart de applicatie via code
https://www.itsvse.com/thread-9480-1-1.html

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

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)






Vorig:Java gebruikt JDBC om het sqlite URL-probleem te verbinden
Volgend:Kafka stelt handmatig de offset in
Geplaatst op 22-09-2021 20:45:47 |
Leer leren...
Geplaatst op 22-09-2021 20:59:49 |
Leren leren, oud ijzer, er zijn zoveel updates, ik kan het niet bijhouden
Geplaatst op 16-05-2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Geavanceerde modus
Geplaatst op 16-05-2023 17:20:36 |
Leer leren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com