Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 47519|Vastaus: 4

[ASP.NET] ASP.NET Swaggerin käyttöliittymän oletusparametrien pitti Core(8):ssa.

[Kopioi linkki]
Julkaistu 8.5.2021 13.27.02 | | | |
Swagger on määräilevä ja kattava kehys RESTful-tyylisten verkkopalveluiden rakentamiseen, kuvaamiseen, kutsumiseen ja visualisointiin.

Yleinen tavoite on, että asiakas ja tiedostojärjestelmä päivittyvät samalla nopeudella kuin palvelin. Tiedoston menetelmät, parametrit ja mallit on tiiviisti integroitu palvelinpuolen koodiin, mikä mahdollistaa rajapintojen synkronoinnin koko ajan. Swagger ei ole koskaan tehnyt tehokkaiden API-rajapintojen käyttöönottoa ja käyttöä helpommaksi.

arvostelu

ASP.NET Ydin (7) Perusteellinen analyysi kehyksen lähdekoodista
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI saa manuaalisesti menetelmän objektien injektioon
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (viisi) perustuu CAP:n hajautettuihin transaktioihin
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) -suodatin yhdisti ModelState-mallin validoinnin
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Luo instansseja dynaamisesti ActivatorUtilitiesin avulla
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Ydin (2) Käynnistä sovellus uudelleen koodin mukaan
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) käyttää Redis-välimuistia
https://www.itsvse.com/thread-9393-1-1.html

Luo ensin uusi projekti Core 3.1 ASP.NET ä ja käytä nugetia asentaaksesi Swashbuckle.AspNetCore-paketin seuraavalla komennolla:

Määritä Swagger-palvelu startup.cs-tiedostossa seuraavasti:

ConfigureServices-menetelmä

Määritä menetelmä

Luo uusi testiohjain seuraavalla koodilla:

Test Controller Create interface Product parameter model -objekti on seuraava:

Projektin aloittamisen jälkeen käytä:http://localhost:18979/swagger/index.html, kuten alla olevassa kuvassa näkyy:



swagger.json Sisältö on seuraava:

{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "versio": "v1"
  },
  "polut": {
    "/api/Testaa/Luo": {
      "post": {
        "tagit": [
          "Testi"
        ],
        "requestBody": {
          "sisältö": {
            "application/json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            },
            "text/json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            },
            "application/*+json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            }
          }
        },
        "Vastaukset": {
          "200": {
            "kuvaus": "Onnistuminen",
            "sisältö": {
              "teksti/selvä": {
                "skeema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skeema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skeema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponentit": {
    "skeemat": {
      "Tietoa": {
        "type": "objekti",
        "ominaisuudet": {
          "isDiscount": {
            "type": "boolean"
          },
          "isVip": {
            "type": "boolean",
            "nullable": tosi
          }
        },
        "additionalProperties": epätosi
      },
      "Tuote": {
        "type": "objekti",
        "ominaisuudet": {
          "nimi": {
            "type": "string",
            "nullable": tosi
          },
          "disabled": {
            "type": "boolean"
          },
          "info": {
            "$ref": "#/components/skeemat/Information"
          }
        },
        "additionalProperties": epätosi
      }
    }
  }
}



Huomasimme, että sekä Boolen tyypit että nollattavat Boolen tyypit oletuksena ovat: tosi,Päivittäisessä kehityksessä, jos boolia ei ole määritetty, oletusarvon tulisi olla väärä ja null-tyypin oletuksena null, yritämme käyttää swaggeria simuloidaksemme commitin, jos parametreja ei huomata,Onnettomuudet ovat alttiita。 (Viime viikolla käytin swaggeria simuloidakseni, että bool-parametri oli oletuksena tosi, jolloin WeChat-viestit siirtyivät kaikille.)

Miten voin asettaa Boolean-tyypin oletuksena väärin? Entä jos null-tyypit annettaisiin nulliksi?

Luo uusi luokka, joka perii ISchemaFilterin, ja koodi on seuraava:

Ja kun lisäät swagger-palvelun, lisää suodatin AddSwaggerGen seuraavasti:

Joillekin erityisille bool-kentille oletusarvo täytyy asettaa tosiksi ja se voidaan lisätä[DefaultValue(true)]Ominaisuudet ovat seuraavat:



{
  "nimi": "naru",
  "disabled": totta,
  "info": {
    "isDiscount": väärin,
    "isVip": null
  }
}
swagger.json Tiedosto on seuraava:
{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "versio": "v1"
  },
  "polut": {
    "/api/Testaa/Luo": {
      "post": {
        "tagit": [
          "Testi"
        ],
        "requestBody": {
          "sisältö": {
            "application/json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            },
            "text/json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            },
            "application/*+json": {
              "skeema": {
                "$ref": "#/komponentit/skeemat/Tuote"
              }
            }
          }
        },
        "Vastaukset": {
          "200": {
            "kuvaus": "Onnistuminen",
            "sisältö": {
              "teksti/selvä": {
                "skeema": {
                  "type": "string"
                }
              },
              "application/json": {
                "skeema": {
                  "type": "string"
                }
              },
              "text/json": {
                "skeema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponentit": {
    "skeemat": {
      "Tietoa": {
        "type": "objekti",
        "ominaisuudet": {
          "isDiscount": {
            "type": "boolean",
            "default": epätosi
          },
          "isVip": {
            "type": "boolean",
            "default": null,
            "nullable": tosi
          }
        },
        "additionalProperties": epätosi
      },
      "Tuote": {
        "type": "objekti",
        "ominaisuudet": {
          "nimi": {
            "type": "string",
            "nullable": tosi
          },
          "disabled": {
            "type": "boolean",
            "oletus": tosi
          },
          "info": {
            "$ref": "#/components/skeemat/Information"
          }
        },
        "additionalProperties": epätosi
      }
    }
  }
}

(Loppu)






Edellinen:Java käyttää JDBC:tä yhdistääkseen sqlite-URL-ongelman
Seuraava:Kafka asettaa siirtymän manuaalisesti
Julkaistu 22.9.2021 20.45.47 |
Opettele oppimaan...
Julkaistu 22.9.2021 20.59.49 |
Opettelen oppimaan, vanha rauta, päivityksiä on niin paljon, etten pysy perässä
Julkaistu 16.5.2023 11.22.31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Edistynyt tila
Julkaistu 16.5.2023 17.20.36 |
Opettele oppimaan
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com