2017-04-17 25 views
11

Web API'm var (ASP.NET Çekirdeği) ve arama yapmak için swagger'ı ayarlamaya çalışıyorum. Çağrılar Yetkilendirme üstbilgisini içermeli ve Taşıyıcı kimlik doğrulamasını kullanıyorum. Postman gibi üçüncü taraf uygulamaların çağrıları iyi gidiyor. Ancak sorun, swagger için üstbilgilerin ayarlanması ile ilgili sorun yaşıyorum (bazı nedenlerle başlıkları alamıyorum). Bu şimdiki gibi görünüyor: Her şeydenYetkilendirme üstbilgilerini (Bearer) kullanarak Swagger'ı (ASP.NET Çekirdeği) Kurma

"host": "localhost:50352", 
    "basePath": "/" , 
    "schemes": [ 
    "http", 
    "https" 
    ], 
"securityDefinitions": { 
    "Bearer": { 
     "name": "Authorization", 
     "in": "header", 
     "type": "apiKey", 
     "description": "HTTP/HTTPS Bearer" 
    } 
    }, 
    "paths": { 
    "/v1/{subAccountId}/test1": { 
     "post": { 
     "tags": [ 
      "auth" 
     ], 
     "operationId": "op1", 
     "consumes": ["application/json", "application/html"], 
     "produces": ["application/json", "application/html"], 
     "parameters": [ 
      { 
      "name": "subAccountId", 
      "in": "path", 
      "required": true, 
      "type": "string" 
      } 
     ], 
     "security":[{ 
      "Bearer": [] 
     }], 
     "responses": { 
      "204": { 
      "description": "No Content" 
      }, 
      "400": { 
      "description": "BadRequest", 
      "schema": { 
       "$ref": "#/definitions/ErrorResponse" 
      } 
      }, 
      "401": { 
      "description": "Unauthorized", 
      "schema": { 
       "$ref": "#/definitions/ErrorResponse" 
      } 
      }, 
      "500": { 
      "description": "InternalServerError", 
      "schema": { 
       "$ref": "#/definitions/ErrorResponse" 
      } 
      } 
     }, 
     "deprecated": false 
     } 
    }, 

cevap

21

Öncelikle, dayı tanımını üreten oto için Swashbuckle.AspNetCore Nuget paketini kullanabilirsiniz. paketi yükledikten sonra

, yöntem ConfigureServices içinde Startup.cs kurulum onu ​​

services.AddSwaggerGen(c => { 
c.AddSecurityDefinition("Bearer", new ApiKeyScheme() { In = "header", Description = "Please insert JWT with Bearer into field", Name = "Authorization", Type = "apiKey" }); 

Sonra sayfanın sağ üstünde Yetki düğmesini kullanabilirsiniz.

En azından Şu Swagger JWT-belirteç ile kimlik doğrulama için işlevsellik vardır ve otomatik başlığına jetonu ekleyebilir

+0

Açıklamanız benim için problemi çözdü. –

+0

İyi bir yanıt ancak bunu ABP boilerplate ile yaptığımda, Dinamik Web Api (https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API) –

+2

@VadimK ile çalışmaz. .NET Core 2.0 – monty

1

, ben here cevap vermiş geçerli dayı çözünürlüklü oluşturmak için bu paketi kullanmak deneyebilirsiniz.