2017-03-15 35 views
5

私はRESTサービスを文書化するためにSwagger APIを使用しています。 私のコントローラメソッドは有益なコメントを持っていなかったので、Swagger APIは説明を表示していませんでしたが、強調表示された領域にメソッドの説明が表示されないなど、Swagger APIがドキュメントを更新していません

/// <summary> 
    /// Gets the consumer scores by retailer id and return id 
    /// </summary> 
    /// <param name="retailerId"></param> 
    /// <param name="returnId"></param> 
    /// <returns></returns> 

enter image description here

私は何も足りませんか?

+1

「Swagger APIを使用する」とはどういう意味ですか?具体的にどのライブラリを使用して、C#から奇妙なドキュメントを生成していますか? – mclark1129

+0

C#Web APIで 'Swashbuckle.AspNetCore'を使用しています。 – Sameer

答えて

4

スワッシュバックルがXMLコメントから読み込むには、ターゲットプロジェクトのXMLドキュメントファイルを有効にする必要があります。それに加えて、スタートアップの設定でそのファイルでSwashbuckleを指す必要があります。 Swashbuckle Documentationから

を開き、プロジェクトのプロパティダイアログ、「構築」タブをクリックし、 は、「XMLドキュメントファイル」にチェックされていることを確認してください。これにより、ビルド時にすべてのXMLコメントを含む ファイルが生成されます。

この時点で、XML コメントで注釈されていないクラスまたはメソッドはビルド警告をトリガします。これをSUPRESSするには、 プロパティダイアログで「を抑圧警告」欄に 警告コード「1591」を入力してください*

設定Swashbuckle闊歩JSON生成 にファイルのXMLコメントを組み込むために:。

を要約、発言やレスポンスタグと
services.AddSwaggerGen(c => 
{ 
    c.SwaggerDoc("v1", 
     new Info 
     { 
      Title = "My API - V1", 
      Version = "v1" 
     } 
    ); 

    var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "MyApi.xml"); 
    c.IncludeXmlComments(filePath); 
} 

注釈あなたの行動

/// <summary> 
/// Retrieves a specific product by unique id 
/// </summary> 
/// <remarks>Awesomeness!</remarks> 
/// <response code="200">Product created</response> 
/// <response code="400">Product has missing/invalid values</response> 
/// <response code="500">Oops! Can't create your product right now</response> 
[HttpGet("{id}")] 
[ProducesResponseType(typeof(Product), 200)] 
[ProducesResponseType(typeof(IDictionary<string, string>), 400)] 
[ProducesResponseType(typeof(void), 500)] 
public Product GetById(int id) 

プロジェクトを再構築してXMLコメントファイルを更新し、Swagger JSONエンドポイント に移動します。説明が 対応するSwaggerフィールドにどのようにマッピングされるかに注意してください。

関連する問題