2017-04-17 6 views
11

Web API(ASP.NET Core)を使用しているため、Swaggerを呼び出して呼び出しを調整しようとしています。 コールにはAuthorizationヘッダーが含まれている必要があり、ベアラ認証を使用しています。 郵便配達員などの第三者のアプリからの通話は問題ありません。 しかし、私は(何らかの理由で)ヘッダーを受け取っていないため、スワッガーのヘッダーを設定することに問題があります。これは、それが今のように見える方法です:すべてのAuthorizationヘッダー(Bearer)を使用してSwagger(ASP.NET Core)を設定する

"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 
     } 
    }, 

答えて

21

まず、あなたの闊歩定義を生成する自動ためSwashbuckle.AspNetCore nugetパッケージを使用することができます。

パッケージをインストールした後、法のConfigureServicesでStartup.csでセットアップを

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

次に、ページの右上に承認ボタンを使用することができます。

少なくとも、あなたは

+0

あなたの説明は私の問題を解決しました。 –

+0

良い答えですが、ABPの定型文でそれを行うと、Dynamic Web Api(https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API) –

+2

@ VadimKで動作しません。 .NET Core 2.0 – monty

1

有効闊歩定義を生成するには、このパッケージを使用しようとすることができ、現在威張っはJWTトークンと認証のための機能を持っており、自動的にヘッダーにトークンを追加することができ、私はhereに答えています。

関連する問題