Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 47519|Odgovoriti: 4

[ASP.NET] ASP.NET privzetih parametrov uporabniškega vmesnika Swagger v Core(8).

[Kopiraj povezavo]
Objavljeno na 8. 05. 2021 13:27:02 | | | |
Swagger je predpisan in celovit okvir za gradnjo, opisovanje, klicanje in vizualizacijo spletnih storitev v slogu RESTful.

Glavni cilj je, da se odjemalec in datotečni sistem posodabljata z enako hitrostjo kot strežnik. Metode, parametri in modeli datoteke so tesno integrirani v strežniško kodo, kar omogoča, da so API-ji ves čas usklajeni. Swagger nikoli ni olajšal nameščanja in uporabe zmogljivih API-jev.

pregled

ASP.NET Jedro (7) Poglobljena analiza izvorne kode ogrodja
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ročno pridobi metodo vbrizgavanja objektov
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pet) temelji na CAP distribuiranih transakcijah
https://www.itsvse.com/thread-9593-1-1.html

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

ASP.NET Jedro (iii) Dinamično ustvarjanje instanc z uporabo ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Jedro (2) Ponovni zagon aplikacije s kodo
https://www.itsvse.com/thread-9480-1-1.html

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

Najprej ustvarite nov projekt ASP.NET Core 3.1 in uporabite nuget za namestitev paketa Swashbuckle.AspNetCore z naslednjim ukazom:

Konfigurirajte storitev Swagger v startup.cs datoteki takole:

Metoda Conconfigure Services

Metoda konfiguracije

Ustvarite nov testni krmilnik z naslednjo kodo:

Vmesnik za ustvarjanje vmesnika Test Controller Build Objekt modela parametrov izdelka je naslednji:

Po začetku projekta lahko dostopate:http://localhost:18979/swagger/index.html, kot je prikazano na spodnji sliki:



swagger.json Vsebina je naslednja:

{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "različica": "v1"
  },
  "poti": {
    "/api/Test/Create": {
      "post": {
        "oznake": [
          "Test"
        ],
        "requestBody": {
          "vsebina": {
            "application/json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            },
            "text/json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            },
            "application/*+json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            }
          }
        },
        "odzivi": {
          "200": {
            "opis": "Uspeh",
            "vsebina": {
              "text/plain": {
                "shema": {
                  "tip": "vrvica"
                }
              },
              "application/json": {
                "shema": {
                  "tip": "vrvica"
                }
              },
              "text/json": {
                "shema": {
                  "tip": "vrvica"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponente": {
    "schemas": {
      "Informacije": {
        "tip": "predmet",
        "lastnosti": {
          "isDiscount": {
            "Tip": "Boolean"
          },
          "isVip": {
            "tip": "Boolean",
            "ničljivo": resnično
          }
        },
        "dodatneLastnosti": napačno
      },
      "Product": {
        "tip": "predmet",
        "lastnosti": {
          "ime": {
            "tip": "vrvica",
            "ničljivo": resnično
          },
          "disabled": {
            "Tip": "Boolean"
          },
          "info": {
            "$ref": "#/komponente/sheme/Informacije"
          }
        },
        "dodatneLastnosti": napačno
      }
    }
  }
}



Ugotovili smo, da tako Booleovi kot ničelni Booleovi tipi privzeto izkazujeta: resnično,Pri vsakodnevnem razvoju, če bool ni dodeljen, naj bo privzeto napačno, ničelni tip pa privzeto na null, poskušamo uporabiti swagger za simulacijo commita, če parametri niso opaženi,Nesreče so pogoste。 (Prejšnji teden sem uporabil Swagger, da sem simuliral, da je bool parameter privzeto resničen, zaradi česar so bila WeChat sporočila poslana vsem ljudem.)

Kako privzeto dodelim Booleov tip na false (fals)? Kaj pa, če so ničelni tipi dodeljeni kot null?

Ustvarite nov razred, ki podeduje ISchemaFilter, in koda je naslednja:

In ko dodajate swagger storitev, dodajte filter AddSwaggerGen, kot sledi:

Za nekatera posebna bool polja je treba privzeto vrednost nastaviti na true in jo je mogoče dodati[DefaultValue(true)]Značilnosti so naslednje:



{
  "ime": "vrvica",
  "invalid": resnično,
  "info": {
    "isDiscount": napačno,
    "isVip": null
  }
}
swagger.json Datoteka je naslednja:
{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "različica": "v1"
  },
  "poti": {
    "/api/Test/Create": {
      "post": {
        "oznake": [
          "Test"
        ],
        "requestBody": {
          "vsebina": {
            "application/json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            },
            "text/json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            },
            "application/*+json": {
              "shema": {
                "$ref": "#/komponente/sheme/Izdelek"
              }
            }
          }
        },
        "odzivi": {
          "200": {
            "opis": "Uspeh",
            "vsebina": {
              "text/plain": {
                "shema": {
                  "tip": "vrvica"
                }
              },
              "application/json": {
                "shema": {
                  "tip": "vrvica"
                }
              },
              "text/json": {
                "shema": {
                  "tip": "vrvica"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponente": {
    "schemas": {
      "Informacije": {
        "tip": "predmet",
        "lastnosti": {
          "isDiscount": {
            "tip": "Boolean",
            "privzeto": napačno
          },
          "isVip": {
            "tip": "Boolean",
            "privzeto": nič,
            "ničljivo": resnično
          }
        },
        "dodatneLastnosti": napačno
      },
      "Product": {
        "tip": "predmet",
        "lastnosti": {
          "ime": {
            "tip": "vrvica",
            "ničljivo": resnično
          },
          "disabled": {
            "tip": "Boolean",
            "privzeto": resnično
          },
          "info": {
            "$ref": "#/komponente/sheme/Informacije"
          }
        },
        "dodatneLastnosti": napačno
      }
    }
  }
}

(Konec)






Prejšnji:Java uporablja JDBC za povezovanje težav z URL-jem sqlite
Naslednji:Kafka ročno nastavi odmik
Objavljeno na 22. 09. 2021 20:45:47 |
Nauči se učiti...
Objavljeno na 22. 09. 2021 20:59:49 |
Učim se učiti, stari železo, toliko je posodobitev, da ne morem slediti
Objavljeno na 16. 05. 2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Napredni način
Objavljeno na 16. 05. 2023 17:20:36 |
Uči se učiti
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com