Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 47519|Atsakyti: 4

[ASP.NET] ASP.NET Swagger vartotojo sąsajos numatytųjų parametrų duobę Core(8).

[Kopijuoti nuorodą]
Paskelbta 2021-05-08 13:27:02 | | | |
Swagger yra įpareigojanti ir išsami sistema, skirta kurti, aprašyti, skambinti ir vizualizuoti RESTful stiliaus žiniatinklio paslaugas.

Bendras tikslas yra, kad klientas ir failų sistema būtų atnaujinti tokiu pačiu greičiu kaip ir serveris. Failo metodai, parametrai ir modeliai yra glaudžiai integruoti į serverio kodą, todėl API visada gali būti sinchronizuojamos. "Swagger" niekada nepalengvino galingų API diegimo ir naudojimo.

Peržiūra

ASP.NET Core (7) Išsami sistemos šaltinio kodo analizė
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI rankiniu būdu gauna objektų įpurškimo būdą
https://www.itsvse.com/thread-9595-1-1.html

"ASP.NET Core" (penki) yra pagrįstas BŽŪP paskirstytais sandoriais
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtro vieningas ModelState modelio tikrinimas
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiškai kurkite egzempliorius naudodami "ActivatorUtilities"
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Iš naujo paleiskite programą pagal kodą
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) naudoja Redis talpyklą
https://www.itsvse.com/thread-9393-1-1.html

Pirmiausia sukurkite naują projektą ASP.NET Core 3.1 ir naudokite nuget, kad įdiegtumėte Swashbuckle.AspNetCore paketą su šia komanda:

Sukonfigūruokite "Swagger" paslaugą startup.cs faile taip:

ConfigureServices metodas

Konfigūravimo metodas

Sukurkite naują bandymo valdiklį su šiuo kodu:

Bandymo valdiklio kūrimo sąsaja Produkto parametrų modelio objektas yra toks:

Pradėję projektą, pasiekite:http://localhost:18979/swagger/index.html, kaip parodyta toliau pateiktame paveikslėlyje:



swagger.json Turinys yra toks:

{
  "openapi": "3.0.1",
  "info": {
    "title": "Mano API",
    "version": "v1"
  },
  "keliai": {
    "/api/Test/Create": {
      "post": {
        "žymos": [
          "Testas"
        ],
        "requestBody": {
          "turinys": {
            "application/json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            }
          }
        },
        "atsakymai": {
          "200": {
            "description": "Sėkmė",
            "turinys": {
              "tekstas/paprastas": {
                "schema": {
                  "type": "eilutė"
                }
              },
              "application/json": {
                "schema": {
                  "type": "eilutė"
                }
              },
              "text/json": {
                "schema": {
                  "type": "eilutė"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponentai": {
    "schemos": {
      "Informacija": {
        "type": "objektas",
        "ypatybės": {
          "isDiscount": {
            "type": "Bulio logika"
          },
          "isVip": {
            "type": "Bulio logika",
            "nulinis": teisinga
          }
        },
        "additionalProperties": klaidinga
      },
      "Produktas": {
        "type": "objektas",
        "ypatybės": {
          "vardas": {
            "type": "eilutė",
            "nulinis": teisinga
          },
          "išjungta": {
            "type": "Bulio logika"
          },
          "info": {
            "$ref": "#/komponentai/schemos/informacija"
          }
        },
        "additionalProperties": klaidinga
      }
    }
  }
}



Nustatėme, kad tiek Bulio tipai, tiek nuliniai Bulio tipai pagal numatytuosius nustatymus yra: true,Kasdieniame kūrime, jei bool nepriskirtas, numatytasis turėtų būti false, o nulinis tipas turėtų būti nulinis, bandome naudoti swagger, kad imituotume įsipareigojimą, jei parametrai nepastebimi,Nelaimingi atsitikimai yra linkę。 (Praėjusią savaitę aš naudojau swagger, kad imituočiau, kad bool parametras buvo teisingas pagal nutylėjimą, todėl WeChat pranešimai buvo siunčiami visiems žmonėms.)

Kaip pagal numatytuosius nustatymus priskirti Bulio logikos tipą klaidingam? O kaip dėl nulinių tipų priskyrimo nuliniams?

Sukurkite naują klasę, kuri paveldi iš ISchemaFilter, ir kodas yra toks:

Pridėdami swagger paslaugą, pridėkite filtrą AddSwaggerGen taip:

Kai kuriuose specialiuose registracijos laukuose numatytoji reikšmė turi būti nustatyta kaip teisinga ir ją galima pridėti[DefaultValue(true)]Charakteristikos yra šios:



{
  "name": "eilutė",
  "neįgalus": tiesa,
  "info": {
    "isDiscount": klaidinga,
    "isVip": null
  }
}
swagger.json Failas yra toks:
{
  "openapi": "3.0.1",
  "info": {
    "title": "Mano API",
    "version": "v1"
  },
  "keliai": {
    "/api/Test/Create": {
      "post": {
        "žymos": [
          "Testas"
        ],
        "requestBody": {
          "turinys": {
            "application/json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/komponentai/schemos/produktas"
              }
            }
          }
        },
        "atsakymai": {
          "200": {
            "description": "Sėkmė",
            "turinys": {
              "tekstas/paprastas": {
                "schema": {
                  "type": "eilutė"
                }
              },
              "application/json": {
                "schema": {
                  "type": "eilutė"
                }
              },
              "text/json": {
                "schema": {
                  "type": "eilutė"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponentai": {
    "schemos": {
      "Informacija": {
        "type": "objektas",
        "ypatybės": {
          "isDiscount": {
            "type": "Bulio logika",
            "default": false
          },
          "isVip": {
            "type": "Bulio logika",
            "default": null,
            "nulinis": teisinga
          }
        },
        "additionalProperties": klaidinga
      },
      "Produktas": {
        "type": "objektas",
        "ypatybės": {
          "vardas": {
            "type": "eilutė",
            "nulinis": teisinga
          },
          "išjungta": {
            "type": "Bulio logika",
            "default": true
          },
          "info": {
            "$ref": "#/komponentai/schemos/informacija"
          }
        },
        "additionalProperties": klaidinga
      }
    }
  }
}

(Pabaiga)






Ankstesnis:"Java" naudoja JDBC, kad sujungtų sqlite URL problemą
Kitą:Kafka rankiniu būdu nustato poslinkį
Paskelbta 2021-09-22 20:45:47 |
Išmokite mokytis...
Paskelbta 2021-09-22 20:59:49 |
Mokymasis mokytis, senas lygintuvas, yra tiek daug atnaujinimų, aš negaliu suspėti
Paskelbta 2023-05-16 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Išplėstinis režimas
Paskelbta 2023-05-16 17:20:36 |
Išmokite mokytis
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com