Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 47519|Atbildi: 4

[ASP.NET] ASP.NET Swagger lietotāja interfeisa noklusējuma parametru bedre Core(8).

[Kopēt saiti]
Publicēts 08.05.2021 13:27:02 | | | |
Swagger ir preskriptīva un pilnīga sistēma RESTful stila tīmekļa pakalpojumu veidošanai, aprakstīšanai, zvanīšanai un vizualizācijai.

Vispārējais mērķis ir klienta un failu sistēmas atjaunināšanai ar tādu pašu ātrumu kā serveris. Faila metodes, parametri un modeļi ir cieši integrēti servera puses kodā, ļaujot API vienmēr būt sinhronizētiem. Swagger nekad nav atvieglojis jaudīgu API izvietošanu un izmantošanu.

Pārskats

ASP.NET Core (7) Sistēmas pirmkoda padziļināta analīze
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuāli iegūst objektu injicēšanas metodi
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pieci) ir balstīts uz CAP sadalītajiem darījumiem
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtra vienotā ModelState modeļa validācija
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiski izveidojiet instances, izmantojot ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET kodols (2) Restartējiet lietojumprogrammu pēc koda
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) izmanto Redis kešatmiņu
https://www.itsvse.com/thread-9393-1-1.html

Vispirms izveidojiet jaunu projektu ASP.NET Core 3.1 un izmantojiet nuget, lai instalētu Swashbuckle.AspNetCore pakotni ar šādu komandu:

Konfigurējiet Swagger pakalpojumu startup.cs failā šādi:

ConfigureServices metode

Konfigurēšanas metode

Izveidojiet jaunu testa kontrolleri ar šādu kodu:

Testa kontroliera izveides interfeiss Produkta parametru modeļa objekts ir šāds:

Pēc projekta uzsākšanas piekļūstiet:http://localhost:18979/swagger/index.html, kā parādīts attēlā:



swagger.json Saturs ir šāds:

{
  "openapi": "3.0.1",
  "informācija": {
    "title": "Mana API",
    "versija": "v1"
  },
  "ceļi": {
    "/api/Test/Create": {
      "post": {
        "tags": [
          "Pārbaude"
        ],
        "requestBody": {
          "saturs": {
            "application/json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            },
            "text/json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            },
            "application/*+json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            }
          }
        },
        "atbildes": {
          "200": {
            "description": "Panākumi",
            "saturs": {
              "teksts/vienkāršs": {
                "shēma": {
                  "type": "virkne"
                }
              },
              "application/json": {
                "shēma": {
                  "type": "virkne"
                }
              },
              "text/json": {
                "shēma": {
                  "type": "virkne"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenti": {
    "shēmas": {
      "Informācija": {
        "tips": "objekts",
        "rekvizīti": {
          "isDiscount": {
            "type": "Būla valoda"
          },
          "isVip": {
            "tips": "Būls",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Produkts": {
        "tips": "objekts",
        "rekvizīti": {
          "nosaukums": {
            "tips": "virkne",
            "nullable": true
          },
          "atspējots": {
            "type": "Būla valoda"
          },
          "informācija": {
            "$ref": "#/komponenti/shēmas/informācija"
          }
        },
        "additionalProperties": false
      }
    }
  }
}



Mēs konstatējām, ka gan Būla tipi, gan nullējamie Būla tipi pēc noklusējuma ir: true,Ikdienas izstrādē, ja bool nav piešķirts, noklusējumam jābūt false, un null tipam jābūt null, mēs cenšamies izmantot swagger, lai simulētu apņemšanos, ja parametri netiek pamanīti,Nelaimes gadījumi ir pakļauti。 (Pagājušajā nedēļā es izmantoju swagger, lai simulētu, ka bool parametrs pēc noklusējuma ir patiess, izraisot WeChat ziņojumus visiem cilvēkiem.)

Kā pēc noklusējuma piešķirt Būla tipu false? Kā būtu ar nulles tipiem, kas tiek piešķirti null?

Izveidojiet jaunu klasi, kas pārmanto no ISchemaFilter, un kods ir šāds:

Un, pievienojot swagger pakalpojumu, pievienojiet filtru AddSwaggerGen šādi:

Dažiem īpašiem BOOL laukiem noklusējuma vērtība ir jāiestata uz true, un to var pievienot[DefaultValue(true)]Raksturlielumi ir šādi:



{
  "name": "virkne",
  "invalīds": taisnība,
  "informācija": {
    "isDiscount": nepatiess,
    "isVip": null
  }
}
swagger.json Fails ir šāds:
{
  "openapi": "3.0.1",
  "informācija": {
    "title": "Mana API",
    "versija": "v1"
  },
  "ceļi": {
    "/api/Test/Create": {
      "post": {
        "tags": [
          "Pārbaude"
        ],
        "requestBody": {
          "saturs": {
            "application/json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            },
            "text/json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            },
            "application/*+json": {
              "shēma": {
                "$ref": "#/komponenti/shēmas/produkts"
              }
            }
          }
        },
        "atbildes": {
          "200": {
            "description": "Panākumi",
            "saturs": {
              "teksts/vienkāršs": {
                "shēma": {
                  "type": "virkne"
                }
              },
              "application/json": {
                "shēma": {
                  "type": "virkne"
                }
              },
              "text/json": {
                "shēma": {
                  "type": "virkne"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponenti": {
    "shēmas": {
      "Informācija": {
        "tips": "objekts",
        "rekvizīti": {
          "isDiscount": {
            "tips": "Būls",
            "noklusējums": nepatiess
          },
          "isVip": {
            "tips": "Būls",
            "noklusējums": nulle,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Produkts": {
        "tips": "objekts",
        "rekvizīti": {
          "nosaukums": {
            "tips": "virkne",
            "nullable": true
          },
          "atspējots": {
            "tips": "Būls",
            "noklusējums": patiess
          },
          "informācija": {
            "$ref": "#/komponenti/shēmas/informācija"
          }
        },
        "additionalProperties": false
      }
    }
  }
}

(Beigas)






Iepriekšējo:Java izmanto JDBC, lai savienotu sqlite URL problēmu
Nākamo:Kafka manuāli iestata nobīdi
Publicēts 22.09.2021 20:45:47 |
Iemācieties mācīties...
Publicēts 22.09.2021 20:59:49 |
Mācoties mācīties, vecais dzelzs, ir tik daudz atjauninājumu, es nevaru sekot līdzi
Publicēts 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Papildu režīms
Publicēts 16.05.2023 17:20:36 |
Iemācieties mācīties
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com