Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 47519|Svare: 4

[ASP.NET] ASP.NET gropen med standardparameterne i Swagger-grensesnittet i Core(8).

[Kopier lenke]
Publisert på 08.05.2021 13:27:02 | | | |
Swagger er et foreskrivende og komplett rammeverk for å bygge, beskrive, ringe og visualisere RESTful-lignende webtjenester.

Det overordnede målet er at klienten og filsystemet skal oppdatere i samme hastighet som serveren. Metodene, parameterne og modellene til filen er tett integrert i serverkoden, slik at API-ene kan være synkroniserte til enhver tid. Swagger har aldri gjort det enklere å implementere og bruke kraftige API-er.

anmeldelse

ASP.NET Kjerne (7) Grundig analyse av rammeverkets kildekode
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI henter manuelt metoden for å injisere objekter
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (fem) er basert på CAP-distribuerte transaksjoner
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-filteret enhetlig ModelState-modellvalidering
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Opprett instanser dynamisk ved hjelp av ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Start applikasjonen på nytt via kode
https://www.itsvse.com/thread-9480-1-1.html

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

Først oppretter du et nytt prosjekt ASP.NET Core 3.1 og bruker nuget for å installere Swashbuckle.AspNetCore-pakken med følgende kommando:

Konfigurer Swagger-tjenesten i startup.cs-filen som følger:

ConfigureServices-metoden

Configure metode

Lag en ny testkontroller med følgende kode:

Test Controller Create grensesnittet Product parameter model-objektet er som følger:

Etter å ha startet prosjektet, få tilgang til:http://localhost:18979/swagger/index.html, som vist i figuren nedenfor:



swagger.json Innholdet er som følger:

{
  "openapi": "3.0.1",
  "info": {
    "tittel": "Min API",
    "versjon": "v1"
  },
  "Paths": {
    "/api/Test/Create": {
      "post": {
        "Tags": [
          "Test"
        ],
        "requestBody": {
          "innhold": {
            "application/json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            },
            "text/json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            },
            "application/*+json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            }
          }
        },
        "responses": {
          "200": {
            "beskrivelse": "Suksess",
            "innhold": {
              "tekst/klar": {
                "skjema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skjema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skjema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenter": {
    "skjemaer": {
      "Informasjon": {
        "type": "objekt",
        "egenskaper": {
          "isDiscount": {
            "type": "boolsk"
          },
          "isVip": {
            "type": "boolsk",
            "null mulig": sant
          }
        },
        "tilleggsegenskaper": falsk
      },
      "Produkt": {
        "type": "objekt",
        "egenskaper": {
          "name": {
            "type": "string",
            "null mulig": sant
          },
          "disabled": {
            "type": "boolsk"
          },
          "info": {
            "$ref": "#/komponenter/skjemaer/Informasjon"
          }
        },
        "tilleggsegenskaper": falsk
      }
    }
  }
}



Vi fant at både boolske typer og nullbare boolske typer automatisk er: sann,I daglig utvikling, hvis bool ikke er tildelt, skal standarden være falsk, og null-typen skal som standard være null, prøver vi å bruke Swagger for å simulere commiten, hvis parametrene ikke blir lagt merke til,Ulykker er utsatt for ulykker。 (Forrige uke brukte jeg Swagger for å simulere at en bool-parameter var sann som standard, noe som førte til at WeChat-meldinger ble sendt til alle.)

Hvordan tilordner jeg en boolsk type til false som standard? Hva med null-typer som blir tildelt null?

Opprett en ny klasse som arver fra ISchemaFilter, og koden er som følger:

Og når du legger til swagger-tjenesten, legg til filteret AddSwaggerGen som følger:

For noen spesielle bool-felt må standardverdien settes til true og kan legges til[DefaultValue(true)]Kjennetegnene er som følger:



{
  "Navn": "Streng",
  "Disabled": Sant,
  "info": {
    "isDiscount": falskt,
    "isVip": null
  }
}
swagger.json Filen er som følger:
{
  "openapi": "3.0.1",
  "info": {
    "tittel": "Min API",
    "versjon": "v1"
  },
  "Paths": {
    "/api/Test/Create": {
      "post": {
        "Tags": [
          "Test"
        ],
        "requestBody": {
          "innhold": {
            "application/json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            },
            "text/json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            },
            "application/*+json": {
              "skjema": {
                "$ref": "#/komponenter/skjemaer/Produkt"
              }
            }
          }
        },
        "responses": {
          "200": {
            "beskrivelse": "Suksess",
            "innhold": {
              "tekst/klar": {
                "skjema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skjema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skjema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenter": {
    "skjemaer": {
      "Informasjon": {
        "type": "objekt",
        "egenskaper": {
          "isDiscount": {
            "type": "boolsk",
            "default": falsk
          },
          "isVip": {
            "type": "boolsk",
            "default": null,
            "null mulig": sant
          }
        },
        "tilleggsegenskaper": falsk
      },
      "Produkt": {
        "type": "objekt",
        "egenskaper": {
          "name": {
            "type": "string",
            "null mulig": sant
          },
          "disabled": {
            "type": "boolsk",
            "default": sant
          },
          "info": {
            "$ref": "#/komponenter/skjemaer/Informasjon"
          }
        },
        "tilleggsegenskaper": falsk
      }
    }
  }
}

(Slutt)






Foregående:Java bruker JDBC for å koble sqlite URL-problemet
Neste:Kafka setter offset-offset manuelt
Publisert på 22.09.2021 20:45:47 |
Lær å lære...
Publisert på 22.09.2021 20:59:49 |
Lærer å lære, gamle jern, det er så mange oppdateringer, jeg klarer ikke å følge med
Publisert på 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Avansert modus
Publisert på 16.05.2023 17:20:36 |
Lær å lære
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com