See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 47519|Vastuse: 4

[ASP.NET] ASP.NET Swaggeri kasutajaliidese vaikimisi parameetrite auk Core(8)-s.

[Kopeeri link]
Postitatud 08.05.2021 13:27:02 | | | |
Swagger on ettekirjutav ja terviklik raamistik RESTful-stiilis veebiteenuste loomiseks, kirjeldamiseks, kutsumiseks ja visualiseerimiseks.

Üldine eesmärk on, et klient ja failisüsteem uuendaksid sama kiirusega kui server. Faili meetodid, parameetrid ja mudelid on tihedalt integreeritud serveripoolsesse koodi, võimaldades API-del kogu aeg sünkroonis püsida. Swagger pole kunagi teinud võimsate API-de juurutamist ja kasutamist lihtsamaks.

Läbivaatamine

ASP.NET Core (7) Raamistiku lähtekoodi põhjalik analüüs
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI saab käsitsi objektide süstimise meetodi
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (viis) põhineb CAP hajutatud tehingutel
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filter ühtlustatud ModelState mudeli valideerimine
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dünaamiliselt loo instantse ActivatorUtilities abil
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Taaskäivita rakendus koodi järgi
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) kasutab Redis vahemällu salvestamist
https://www.itsvse.com/thread-9393-1-1.html

Esmalt loo uus projekt Core 3.1 ASP.NET ja kasuta nuget'i, et paigaldada Swashbuckle.AspNetCore pakett järgmise käsuga:

Seadista Swagger teenus startup.cs failis järgmiselt:

ConfigureServices meetod

Seadista meetod

Loo uus testkontroller järgmise koodiga:

Test Controller Create interface Product parameter mudeli objekt on järgmine:

Pärast projekti alustamist pääse ligi:http://localhost:18979/swagger/index.html, nagu alloleval joonisel näidatud:



swagger.json Sisu on järgmine:

{
  "openapi": "3.0.1",
  "info": {
    "title": "Minu API",
    "versioon": "v1"
  },
  "teed": {
    "/api/Test/Create": {
      "post": {
        "sildid": [
          "Test"
        ],
        "requestBody": {
          "sisu": {
            "application/json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            },
            "text/json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            },
            "application/*+json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            }
          }
        },
        "vastused": {
          "200": {
            "kirjeldus": "Edu",
            "sisu": {
              "tekst/plain": {
                "skeem": {
                  "tüüp": "string"
                }
              },
              "application/json": {
                "skeem": {
                  "tüüp": "string"
                }
              },
              "text/json": {
                "skeem": {
                  "tüüp": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponendid": {
    "skeemid": {
      "Info": {
        "type": "objekt",
        "omadused": {
          "isDiscount": {
            "type": "boolean"
          },
          "isVip": {
            "type": "boolean",
            "nullable": tõene
          }
        },
        "additionalProperties": vale
      },
      "Toode": {
        "type": "objekt",
        "omadused": {
          "nimi": {
            "type": "string",
            "nullable": tõene
          },
          "disabled": {
            "type": "boolean"
          },
          "info": {
            "$ref": "#/komponendid/skeemid/Informatsioon"
          }
        },
        "additionalProperties": vale
      }
    }
  }
}



Leidsime, et nii Boole'i tüübid kui ka nullitavad Boole'i tüübid on vaikimisi: tõeline,Igapäevases arenduses, kui bool'i ei määrata, peaks vaikimisi olema false ja null tüüp vaikimisi null, püüame simuleerida commit'i Swagger'iga, kui parameetreid ei märgata,Õnnetused on altid。 (Eelmisel nädalal kasutasin swaggerit, et simuleerida, et bool-parameeter on vaikimisi tõene, mistõttu WeChati sõnumid saadetakse kõigile inimestele.)

Kuidas ma määran vaikimisi Boole'i tüübi vale tüübile? Kuidas oleks nulltüüpide määramisega?

Loo uus klass, mis pärib ISchemaFilterilt, ja kood on järgmine:

Ja kui lisad Swagger-teenuse, lisa filter AddSwaggerGen järgmiselt:

Mõnede eriliste bool-väljade puhul tuleb vaikimisi väärtus seada tõeseks ja seda saab lisada[DefaultValue(true)]Omadused on järgmised:



{
  "nimi": "string",
  "disabled": tõsi,
  "info": {
    "isDiscount": väär,
    "isVip": null
  }
}
swagger.json Fail on järgmine:
{
  "openapi": "3.0.1",
  "info": {
    "title": "Minu API",
    "versioon": "v1"
  },
  "teed": {
    "/api/Test/Create": {
      "post": {
        "sildid": [
          "Test"
        ],
        "requestBody": {
          "sisu": {
            "application/json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            },
            "text/json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            },
            "application/*+json": {
              "skeem": {
                "$ref": "#/komponendid/skeemid/Toode"
              }
            }
          }
        },
        "vastused": {
          "200": {
            "kirjeldus": "Edu",
            "sisu": {
              "tekst/plain": {
                "skeem": {
                  "tüüp": "string"
                }
              },
              "application/json": {
                "skeem": {
                  "tüüp": "string"
                }
              },
              "text/json": {
                "skeem": {
                  "tüüp": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponendid": {
    "skeemid": {
      "Info": {
        "type": "objekt",
        "omadused": {
          "isDiscount": {
            "type": "boolean",
            "vaikimisi": vale
          },
          "isVip": {
            "type": "boolean",
            "vaikimisi": null,
            "nullable": tõene
          }
        },
        "additionalProperties": vale
      },
      "Toode": {
        "type": "objekt",
        "omadused": {
          "nimi": {
            "type": "string",
            "nullable": tõene
          },
          "disabled": {
            "type": "boolean",
            "vaikimisi": tõene
          },
          "info": {
            "$ref": "#/komponendid/skeemid/Informatsioon"
          }
        },
        "additionalProperties": vale
      }
    }
  }
}

(Lõpp)






Eelmine:Java kasutab JDBC-d sqlite URL-i probleemi ühendamiseks
Järgmine:Kafka seab nihke käsitsi
Postitatud 22.09.2021 20:45:47 |
Õpi õppima...
Postitatud 22.09.2021 20:59:49 |
Õpin õppima, vana raud, uuendusi on nii palju, et ma ei jõua sammu pidada
Postitatud 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Täiustatud režiim
Postitatud 16.05.2023 17:20:36 |
Õpi õppima
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com