2

私はWebAPI 2とOWINを使って1つのWebサービスを開発しています。私の目標は、Swashbuckleのドキュメントを追加することです。私AttributeDtoクラスコードの下Swagger UIでリクエスト/レスポンスのサンプルデータを提供するにはどうすればよいですか?

/// <summary> 
/// La mia descrizione... 
/// </summary> 
/// <param name="id">Identificativo</param> 
/// <param name="list">Una lista</param> 
[HttpPut] 
[Route("~/api/v1/documents/{id}/attribute")] 
public IHttpActionResult Put(int id, List<AttributeDto> list) 
{ 
    _myService.Create(list, id); 
    return Ok(); 
} 

Swagger UI autogenerated data example..:私は闊歩UIを開くと

using Newtonsoft.Json; 

namespace WebApi.Dtos 
{ 
    public class AttributeDto 
    { 
     [JsonIgnore] 
     public int Id { get; set; } 

     [JsonIgnore] 
     public int OtherId { get; set; } 

     public string Label { get; set; } 

     public string Value { get; set; } 
    } 
} 

私が自動生成されたデータとの一例のセクションを表示することができ、私の方法に従い

[ 
    { 
    "label": "Etichetta di esempio", 
    "value": "Valore di esempio" 
    } 
] 

答えて

1

私はSwagger-Net代わりのswashbuckleを使用して、あなたをお勧めします:絵でJSONは以下のようになるように、にはどうすれば自動生成されたデータをカスタマイズすることができます。

public class AttributeDto 
{ 
    [JsonIgnore] 
    public int Id { get; set; } 

    [JsonIgnore] 
    public int OtherId { get; set; } 

    /// <example>Etichetta di esempio</example> 
    public string Label { get; set; } 

    /// <example>Valore di esempio</example> 
    public string Value { get; set; } 
} 

これはswashbuckleすることが提案されたが、まだそこにマージされていないされています:
https://github.com/domaindrivendev/Swashbuckle/pull/1091
威張っ-Netがある あなたが行う必要がありますすべては、このようなXMLの例のコメントで定義プロパティを飾るありますスワッシュバックルの私のフォークが、私は多くの素晴らしい機能をマージし、多くのバグを修正しました。

0

オプションがISchemaFilter(つまりSwaggerConfig.csに行く)を使用することで、ここでの例です:

private class ApplySchemaVendorExtensions : ISchemaFilter 
{ 
    public void Apply(Schema schema, SchemaRegistry schemaRegistry, Type type) 
    { 
     if (schema.properties != null) 
     { 
      foreach (var p in schema.properties) 
      { 
       switch (p.Key) 
       { 
        case "label": 
         p.Value.example = "Etichetta di esempio"; 
         break; 
        case "value": 
         p.Value.example = "Valore di esempio"; 
         break; 
       } 
       break; 
      } 
     } 
    } 
} 

我々が情報を保持する必要がありますので、私は個人的にその解決策を愛していません2つの異なるファイルのクラス...

関連する問題