Beállítás swashbuckle (henceg) számára webapi
Beállítás Swashbuckle (Swagger) a WebAPI 8
- 11.12.16 06:22 •
- ETman •
- • # 317338
- • Habrahabr
- 11 •
- 2700
- mint a Forbes, csak jobb.
Rögzítse a projekt
Swashbuckle - NuGet ez a csomag van építve az automatikusan generált WebAPI csomópont információk szerint a specifikáció OpenAPI. Ez a specifikáció, de facto standard, mint egykor a WSDL. Telepíthető, úgy négy egyszerű lépésben.
Árnyalatok a Deploe WebAPI
Amikor deploe WebAPI termelés probléma lehet azzal a ténnyel, hogy az XML fájl hiányzik. Release összeállítás nem tartalmazza azokat az alapértelmezett, de lehet megkerülni ezt, fájl szerkesztésével csproj. Meg kell adni a projekt PropertyGroup
További problémát jelent azok számára, akik várakozás elrejtse API proxy. A megoldás nem általános, de az én esetemben működik. Proxy hozzáteszi fejlécek rekvest amelyben megtudjuk, hogyan lehet endponitov URL az ügyfél számára.
Példa Detect URL a proxy
Hozzáadása Response kódok
Példák az adagolás kódok állapotát
A lusta ott van a lehetőség, hogy adjunk a közös kód (például 400 (BadRequest), illetve 401 (jogosult)) azonnal az összes módszerre. Ehhez meg kell valósítani IOperationFilter felület és regisztrálja az osztály c.OperationFilter
Módszert alkalmazzák például a hozzá listáját kódok
Beépített böngésző
Hozzátéve, hogy WebAPI konfiguráció, a böngésző bekéri adatok hitelesítése idején a kérelmet. A komplexitás az, hogy ezek az adatok nem veszít olyan könnyen és gyorsan, hogyan kell beírni.
Egy másik módszer sokkal kényelmesebb ebben a tekintetben, mert Ez egy speciális formája. Ahhoz, hogy a beépített hitelesítési forma szükséges ahhoz, hogy a csomag az alábbiak szerint:
Végrehajtását a módszer Alkalmazza a szűrőt
Hozzátéve ezt a paramétert
Például JS küldő fejléceket Swagger
Együtt dolgozunk a kötelező Heder
Endpointy a túltöltött módszerekkel
WebAPI fellépés lehetővé teszi számos módszer egyik endpointa hívó függ a lekérdezési paramétereket.
Ezek a módszerek nem támogatja az alapértelmezett és Swagger UI hibát jelez 500: Nem támogatja a Swagger 2.0: Többszörös műveletek path „api /
Valamint azt tanácsolja a jelentés legyen önállóan oldja meg a helyzetet, és van több lehetőség:
- válasszon csak egy módszer
- Az egyik módszer, hogy nem az összes lehetőséget
- változás dokumentum generáció
az első és a második eljárás felhasználásával vannak megvalósítva c.ResolveConflictingActions konfiguráció (Func
Egy példa arra, hogyan egyesítse az összes paramétert
A Cardinal módszer
A harmadik módszer sokkal fontosabb az a kisülési az OpenAPI a specifikáció. Megjelenítheti az összes endpointy paraméterekkel:
Ehhez meg kell változtatnia a létrehozási módja Swagger dokumentumot IDocumentFilter és létrehozza a saját leírását.
Az életben, ez a módszer csak ritkán van szükség, így ásni még mélyebb. Egy másik módja, amely azt ajánlom csak azoknak, akik érdeklődnek a belsejét Swashbuckle -, hogy cserélje SwaggerGenerator. Ez összhangban c.CustomProvider (defaultProvider => új NewSwaggerProvider (defaultProvider));. Ehhez megteheti:
- hozzon létre az osztály MySwaggerGenerator: ISwaggerProvider
- A Swashbuckle adattár GitHubról találják SwaggerGenerator.cs (ez itt)
- GetSwagger másolat módszer és egyéb technikák kapcsolódik a
- ismétlődő belső változók és inicializálni őket a kivitelező az osztály
- Egy konfigurációs regiszter Swagger
Formázza meg a belső változók
Ezt követően meg kell találni a helyét var utak = GetApiDescriptionsFor (apiVersion). Ez az a hely, ahol létrehozza az utat. Például, hogy elérjük, hogy a példa kell GroupBy () helyébe .GroupBy (apiDesc => apiDesc.RelativePath).