Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 47519|Válasz: 4

[ASP.NET] ASP.NET a Swagger UI alapértelmezett paramétereinek gödöre a Core(8)-ban.

[Linket másol]
Közzétéve 2021. 05. 08. 13:27:02 | | | |
A Swagger egy előíró és teljes keretrendszer a RESTful stílusú webszolgáltatások építésére, leírására, hívására és vizualizálására.

Az általános cél, hogy az ügyfél és a fájlrendszer ugyanolyan sebességgel frissüljön, mint a szerver. A fájl módszerei, paraméterei és modelljei szorosan integrálva vannak a szerveroldali kódba, lehetővé téve, hogy az API-k mindig szinkronban maradjanak. A Swagger soha nem tette egyszerűvé a hatékony API-k telepítését és használatát.

szemle

ASP.NET Core (7) A keretrendszer forráskódjának mélyreható elemzése
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuálisan megszerzi az objektumok befecskendezésének módszerét
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (öt) CAP elosztott tranzakciókon alapul
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) szűrő egységes ModelState modellvalidáció
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamikusan hozz létre példányokat az ActivatorUtilities használatával
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Újraindítsa az alkalmazást kód szerint
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis gyorsítótárat használ
https://www.itsvse.com/thread-9393-1-1.html

Először hozz létre egy új projektet a Core 3.1 ASP.NET és használd a nuget-et a Swashbuckle.AspNetCore csomag telepítésére a következő parancsol:

A Swagger szolgáltatást a startup.cs fájlban a következőképpen konfigurálja:

ConfigureServices módszer

Metódus konfigurálása

Hozzon létre egy új tesztvezérlőt a következő kóddal:

A Test Controller Felület létrehozása Termék paramétermodell objektuma a következő:

A projekt elindítása után a következő hozzáférés:http://localhost:18979/swagger/index.html, ahogy az alábbi ábrán látható:



swagger.json A tartalom a következő:

{
  "openapi": "3.0.1",
  "info": {
    "title": "Az API-m",
    "verzió": "v1"
  },
  "utak": {
    "/api/Test/Create": {
      "post": {
        "címkék": [
          "Teszt"
        ],
        "requestBody": {
          "tartalom": {
            "application/json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            },
            "text/json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            },
            "application/*+json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            }
          }
        },
        "válaszok": {
          "200": {
            "leírás": "Siker",
            "tartalom": {
              "szöveg/egyszerű": {
                "séma": {
                  "type": "string"
                }
              },
              "application/json": {
                "séma": {
                  "type": "string"
                }
              },
              "text/json": {
                "séma": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponens": {
    "sémák": {
      "Információ": {
        "type": "objektum",
        "tulajdonságok": {
          "isDiscount": {
            "type": "boolean"
          },
          "isVip": {
            "type": "boolean",
            "nullable": igaz
          }
        },
        "additionalProperties": hamis
      },
      "Termék": {
        "type": "objektum",
        "tulajdonságok": {
          "név": {
            "type": "string",
            "nullable": igaz
          },
          "disabled": {
            "type": "boolean"
          },
          "info": {
            "$ref": "#/komponens/séma/információ"
          }
        },
        "additionalProperties": hamis
      }
    }
  }
}



Megállapítottuk, hogy mind a Boole-típus, mind a nullable Boole-típusok alapértelmezett: true,A napi fejlesztésben, ha a bool nincs hozzárendelve, az alapértelmezett fal legyen, a null típusnak pedig null legyen, megpróbáljuk swaggert használni a commit szimulálására, ha a paraméterek nem tűnnek észre,Balesetek hajlamosak。 (Múlt héten a swaggert használtam, hogy szimuláljam, hogy egy bool paraméter alapértelmezetten igaz, így a WeChat üzenetek minden emberhez eljutottak.)

Hogyan rendelhetek egy Boolean típust alapértelmezett hamisnak? Mi a helyzet, ha null típusokat null típusnak neveznének ki?

Hozz létre egy új osztályt, amely az ISchemaFilter-től örököl, és a kód a következő:

És amikor hozzáadod a swagger szolgáltatást, add hozzá az AddSwaggerGen szűrőt az alábbiakkal:

Néhány speciális bool mező esetén az alapértelmezett értéket true értékre kell állítani, és hozzáadható[DefaultValue(true)]A jellemzők a következők:



{
  "név": "húr",
  "letiltott": igaz,
  "info": {
    "isDiscount": hamis,
    "isVip": null
  }
}
swagger.json Az akté a következő:
{
  "openapi": "3.0.1",
  "info": {
    "title": "Az API-m",
    "verzió": "v1"
  },
  "utak": {
    "/api/Test/Create": {
      "post": {
        "címkék": [
          "Teszt"
        ],
        "requestBody": {
          "tartalom": {
            "application/json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            },
            "text/json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            },
            "application/*+json": {
              "séma": {
                "$ref": "#/komponens/séma/Termék"
              }
            }
          }
        },
        "válaszok": {
          "200": {
            "leírás": "Siker",
            "tartalom": {
              "szöveg/egyszerű": {
                "séma": {
                  "type": "string"
                }
              },
              "application/json": {
                "séma": {
                  "type": "string"
                }
              },
              "text/json": {
                "séma": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "komponens": {
    "sémák": {
      "Információ": {
        "type": "objektum",
        "tulajdonságok": {
          "isDiscount": {
            "type": "boolean",
            "default": hamis
          },
          "isVip": {
            "type": "boolean",
            "default": null,
            "nullable": igaz
          }
        },
        "additionalProperties": hamis
      },
      "Termék": {
        "type": "objektum",
        "tulajdonságok": {
          "név": {
            "type": "string",
            "nullable": igaz
          },
          "disabled": {
            "type": "boolean",
            "alapértelmezett": igaz
          },
          "info": {
            "$ref": "#/komponens/séma/információ"
          }
        },
        "additionalProperties": hamis
      }
    }
  }
}

(Vége)






Előző:A Java a JDBC-t használja a sqlite URL probléma összekapcsolására
Következő:Kafka manuálisan állítja be az elolást
Közzétéve 2021. 09. 22. 20:45:47 |
Tanulj meg...
Közzétéve 2021. 09. 22. 20:59:49 |
Tanulni tanulok, öreg vas, annyi frissítés van, hogy nem tudok lépést tartani
Közzétéve 2023. 05. 16. 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Fejlett mód
Közzétéve 2023. 05. 16. 17:20:36 |
Tanulj meg
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com