2017-06-20 3 views
0

管理者と一般ユーザのための異なるドキュメントを生成します。しかし、私は管理者だけが利用できるいくつかのエンドポイントを持っています。あなたの下には例が見えます。闊歩は、私は現在、私の解決策は、各エンドポイントの闊歩ドキュメントを生成するために設定している

正規のユーザーがモデルを作成することができ、しかし、唯一の管理者は、データベース内のすべての単一のモデルを引くことができます。

課題は、闊歩ドキュメントの2セットを生成するのですか? 1つは通常のユーザーが見ることができ、もう1つはAdminユーザーが参照できるドキュメントです。私は、[ApiExplorerSettings(IgnoreApi = true)]をエンドポイントに追加すると生成されるドキュメントには表示されませんが、これは管理者ユーザーがドキュメントの重要な部分を見ることができなくなることを意味します。ユーザーに応じて2つのドキュメントセットを動的に生成する方法に関する推奨事項は役に立ちます。以下

[SwaggerResponse((int)System.Net.HttpStatusCode.OK, Type = typeof(RestOkResponse<PackageResponse>))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.InternalServerError, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.BadRequest, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.Forbidden, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.NotFound)] 
[HttpPost("/v1/packages")] 
[Authorize()] 
public async Task<IActionResult> CreateModel([FromBody]Request request) 
{ 
    ... 
} 

方法は、管理者のためのものである:

[SwaggerResponse((int)System.Net.HttpStatusCode.OK, Type = typeof(RestOkResponse<PackageResponse>))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.InternalServerError, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.BadRequest, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.Forbidden, Type = typeof(RestErrorResponse))] 
[SwaggerResponse((int)System.Net.HttpStatusCode.NotFound)] 
[ApiExplorerSettings(IgnoreApi = true)] 
[HttpPost("/v1/packages")] 
[Authorize()] 
public async Task<IActionResult> GetAllModelsFromDatabase([FromBody]Request request) 
{ 
    ... 
} 

答えて

0

動的プロセスは、この回答で発見されました。

Dynamically Ignore WebAPI method on controller for api explorer documentation

それにはこれを行うための方法で構築がありませんが闊歩文書を分離することが可能です。一つは、国連が1つの文書ファイルからノードを望んでいた削除する必要があります: https://github.com/swagger-api/swagger-editor/issues/233

あなた自身がそう parameters_common.yamlパスがHTTPパスとして解決を取得することができますエディタをホストする場合、これは現在のエディタで正常に動作します。 現在、ファイル間をジャンプしたり、新しいファイルを作成する方法はありません。 Swaggerで大きなプロジェクトを行っている場合は、 エディターをご自身でホストすることをおすすめします。編集者とあなたが構築しているAPIは 同じ起源である場合、XHRコールは、より「試す操作を」中のコールの詳細と持っていない あなたのAPIを表示するには、クロスオリジンのヘルプエディタ である必要はありません。クロスオリジンヘッダーを持つこと。小さなノードに闊歩ファイルを分割する方法について

例。 http://azimi.me/2015/07/16/split-swagger-into-smaller-files.html

関連する問題