Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 47519|Odpoveď: 4

[ASP.NET] ASP.NET z predvolených parametrov používateľského rozhrania Swagger v Core(8).

[Kopírovať odkaz]
Zverejnené 8. 5. 2021 13:27:02 | | | |
Swagger je predpisový a kompletný rámec na vytváranie, opisovanie, volanie a vizualizáciu webových služieb v štýle RESTful.

Celkovým cieľom je, aby sa klient a súborový systém aktualizovali rovnakou rýchlosťou ako server. Metódy, parametre a modely súboru sú úzko integrované do serverového kódu, čo umožňuje, aby API zostávali neustále synchronizované. Swagger nikdy neuľahčil nasadzovanie a používanie výkonných API.

revízia

ASP.NET Jadro (7) Hĺbková analýza zdrojového kódu frameworku
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuálne získava metódu injektovania objektov
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (päť) je založený na distribuovaných transakciách podľa CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filter zjednotený validácia modelu ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Jadro (iii) Dynamicky vytvárať inštancie pomocou ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Reštartovať aplikáciu pomocou kódu
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) používa Redis caching
https://www.itsvse.com/thread-9393-1-1.html

Najprv vytvorte nový projekt ASP.NET Core 3.1 a použite nuget na inštaláciu balíka Swashbuckle.AspNetCore pomocou nasledujúceho príkazu:

Nakonfigurujte službu Swagger v startup.cs súbore nasledovne:

Metóda ConfigureServices

Metóda Configure

Vytvorte nový testovací kontrolér s nasledujúcim kódom:

Rozhranie Test Controller Create Objekt modelu parametra produktu je nasledovný:

Po spustení projektu pristup:http://localhost:18979/swagger/index.html, ako je znázornené na obrázku nižšie:



swagger.json Obsah je nasledovný:

{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "verzia": "v1"
  },
  "paths": {
    "/api/Test/Create": {
      "post": {
        "tagy": [
          "Test"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            },
            "text/json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            },
            "application/*+json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            }
          }
        },
        "odpovede": {
          "200": {
            "opis": "Úspech",
            "content": {
              "text/plain": {
                "schéma": {
                  "typ": "struna"
                }
              },
              "application/json": {
                "schéma": {
                  "typ": "struna"
                }
              },
              "text/json": {
                "schéma": {
                  "typ": "struna"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Informácie": {
        "typ": "objekt",
        "vlastnosti": {
          "isDiscount": {
            "Type": "Boolean"
          },
          "isVip": {
            "typ": "boolean",
            "nulovateľné": pravda
          }
        },
        "additionalProperties": false
      },
      "Product": {
        "typ": "objekt",
        "vlastnosti": {
          "meno": {
            "typ": "struna",
            "nulovateľné": pravda
          },
          "disabled": {
            "Type": "Boolean"
          },
          "info": {
            "$ref": "#/komponenty/schémy/Informácie"
          }
        },
        "additionalProperties": false
      }
    }
  }
}



Zistili sme, že oba Booleovské aj nulovateľné Booleovské typy štandardne zodpovedajú: pravda,V dennom vývoji, ak bool nie je priradený, predvolený by mal byť false a null typ by mal byť predvolený na null, snažíme sa použiť Swagger na simuláciu commitu, ak si parametre nevšimneme,Nehody sú náchylné。 (Minulý týždeň som použil Swagger, aby som simuloval, že bool parameter je predvolene pravdivý, čo spôsobilo, že správy na WeChate boli posielané všetkým ľuďom.)

Ako môžem predvolene priradiť Booleovskému typu falošné? A čo nullové typy, ktoré sú priradené null?

Vytvorte novú triedu, ktorá dedí z ISchemaFilter, a kód je nasledovný:

A pri pridávaní swagger služby pridajte filter AddSwaggerGen nasledovne:

Pre niektoré špeciálne bool polia je potrebné nastaviť predvolenú hodnotu na true a môže sa pridávať[DefaultValue(true)]Charakteristiky sú nasledovné:



{
  "meno": "šnúrka",
  "postihnutý": pravda,
  "info": {
    "isDiscount": false,
    "isVip": null
  }
}
swagger.json Súbor je nasledovný:
{
  "openapi": "3.0.1",
  "info": {
    "title": "My API",
    "verzia": "v1"
  },
  "paths": {
    "/api/Test/Create": {
      "post": {
        "tagy": [
          "Test"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            },
            "text/json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            },
            "application/*+json": {
              "schéma": {
                "$ref": "#/komponenty/schémy/Produkt"
              }
            }
          }
        },
        "odpovede": {
          "200": {
            "opis": "Úspech",
            "content": {
              "text/plain": {
                "schéma": {
                  "typ": "struna"
                }
              },
              "application/json": {
                "schéma": {
                  "typ": "struna"
                }
              },
              "text/json": {
                "schéma": {
                  "typ": "struna"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Informácie": {
        "typ": "objekt",
        "vlastnosti": {
          "isDiscount": {
            "typ": "boolean",
            "predvolené": nepravdivé
          },
          "isVip": {
            "typ": "boolean",
            "default": null,
            "nulovateľné": pravda
          }
        },
        "additionalProperties": false
      },
      "Product": {
        "typ": "objekt",
        "vlastnosti": {
          "meno": {
            "typ": "struna",
            "nulovateľné": pravda
          },
          "disabled": {
            "typ": "boolean",
            "default": pravda
          },
          "info": {
            "$ref": "#/komponenty/schémy/Informácie"
          }
        },
        "additionalProperties": false
      }
    }
  }
}

(Koniec)






Predchádzajúci:Java používa JDBC na prepojenie problému so sqlite URL
Budúci:Kafka manuálne nastavuje offsetový offset
Zverejnené 22. 9. 2021 20:45:47 |
Nauč sa učiť...
Zverejnené 22. 9. 2021 20:59:49 |
Učím sa učiť, staré železo, je toľko aktualizácií, že nestíham
Zverejnené 16. 5. 2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Pokročilý režim
Zverejnené 16. 5. 2023 17:20:36 |
Naučte sa učiť
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com