Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 47519|Svar: 4

[ASP.NET] ASP.NET grube med standardparametrene i Swagger-brugerfladen i Core(8).

[Kopier link]
Opslået på 08/05/2021 13.27.02 | | | |
Swagger er en foreskrivende og komplet ramme til at bygge, beskrive, kalde og visualisere RESTful-lignende webtjenester.

Det overordnede mål er, at klienten og filsystemet opdaterer med samme hastighed som serveren. Metoderne, parametrene og modellerne for filen er tæt integreret i server-side koden, hvilket gør det muligt for API'er at forblive synkroniserede hele tiden. Swagger har aldrig gjort det nemmere at implementere og bruge kraftfulde API'er.

anmeldelse

ASP.NET Core (7) Dybdegående analyse af frameworkets kildekode
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI henter manuelt metoden til at injicere objekter
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (fem) er baseret på CAP-distribuerede transaktioner
https://www.itsvse.com/thread-9593-1-1.html

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

ASP.NET Core (iii) Opret dynamisk instanser ved hjælp af ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Genstart applikationen ved at kode
https://www.itsvse.com/thread-9480-1-1.html

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

Først opretter du et nyt projekt ASP.NET Core 3.1 og bruger nuget til at installere Swashbuckle.AspNetCore-pakken med følgende kommando:

Konfigurér Swagger-tjenesten i startup.cs-filen som følger:

ConfigureTServices-metoden

Configure metode

Opret en ny testcontroller med følgende kode:

Test Controller Create-grænsefladen Produktparametermodel-objektet er som følger:

Efter at have startet projektet, kan du få adgang til:http://localhost:18979/swagger/index.html, som vist i figuren nedenfor:



swagger.json Indholdet er som følger:

{
  "openapi": "3.0.1",
  "info": {
    "titel": "Mit API",
    "version": "v1"
  },
  "Stier": {
    "/api/Test/Create": {
      "post": {
        "Tags": [
          "Test"
        ],
        "requestBody": {
          "indhold": {
            "application/json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            },
            "text/json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            },
            "application/*+json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            }
          }
        },
        "svar": {
          "200": {
            "beskrivelse": "Succes",
            "indhold": {
              "tekst/klar": {
                "skema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenter": {
    "skemaer": {
      "Information": {
        "type": "objekt",
        "egenskaber": {
          "isDiscount": {
            "type": "boolesk"
          },
          "isVip": {
            "type": "boolesk",
            "Nullable": sandt
          }
        },
        "additionalProperties": false
      },
      "Produkt": {
        "type": "objekt",
        "egenskaber": {
          "name": {
            "type": "string",
            "Nullable": sandt
          },
          "deaktiveret": {
            "type": "boolesk"
          },
          "info": {
            "$ref": "#/komponenter/skemaer/Information"
          }
        },
        "additionalProperties": false
      }
    }
  }
}



Vi fandt, at både booleske typer og nullible booleske typer som standard er: sand,I daglig udvikling, hvis bool ikke er tildelt, bør standarden være falsk, og null-typen bør som standard være null, prøver vi at bruge swagger til at simulere committen, hvis parametrene ikke bemærkes,Ulykker er udsatte。 (I sidste uge brugte jeg Swagger til at simulere, at en bool-parameter var sand som standard, hvilket fik WeChat-beskeder til at blive sendt til alle.)

Hvordan tildeler jeg en boolesk type til false som standard? Hvad med null-typer, der bliver tildelt null?

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

Og når du tilføjer swagger-tjenesten, tilføj filteret AddSwaggerGen som følger:

For nogle specielle bool-felter skal standardværdien sættes til sand og kan tilføjes[DefaultValue(true)]Karakteristikaene er som følger:



{
  "navn": "snor",
  "Handicappet": Sandt,
  "info": {
    "isDiscount": falsk,
    "isVip": null
  }
}
swagger.json Filen er som følger:
{
  "openapi": "3.0.1",
  "info": {
    "titel": "Mit API",
    "version": "v1"
  },
  "Stier": {
    "/api/Test/Create": {
      "post": {
        "Tags": [
          "Test"
        ],
        "requestBody": {
          "indhold": {
            "application/json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            },
            "text/json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            },
            "application/*+json": {
              "skema": {
                "$ref": "#/komponenter/skemaer/Produkt"
              }
            }
          }
        },
        "svar": {
          "200": {
            "beskrivelse": "Succes",
            "indhold": {
              "tekst/klar": {
                "skema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenter": {
    "skemaer": {
      "Information": {
        "type": "objekt",
        "egenskaber": {
          "isDiscount": {
            "type": "boolesk",
            "default": falsk
          },
          "isVip": {
            "type": "boolesk",
            "default": null,
            "Nullable": sandt
          }
        },
        "additionalProperties": false
      },
      "Produkt": {
        "type": "objekt",
        "egenskaber": {
          "name": {
            "type": "string",
            "Nullable": sandt
          },
          "deaktiveret": {
            "type": "boolesk",
            "default": sandt
          },
          "info": {
            "$ref": "#/komponenter/skemaer/Information"
          }
        },
        "additionalProperties": false
      }
    }
  }
}

(Slut)






Tidligere:Java bruger JDBC til at forbinde sqlite URL-problemet
Næste:Kafka indstiller manuelt offset-offset
Opslået på 22/09/2021 20.45.47 |
Lær at lære...
Opslået på 22/09/2021 20.59.49 |
Lærer at lære, gamle jern, der er så mange nyheder, jeg kan ikke følge med
Opslået på 16/05/2023 11.22.31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Avanceret tilstand
Opslået på 16/05/2023 17.20.36 |
Lær at lære
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com