2016-12-28 6 views
0

私はSwashbuckleを使用して、次のアクションSwashbuckle ODataのマッピングEnableUnqualifiedNameCall

POST /odata/Individuals({individualId})/Default.SendEmail

闊歩ドキュメントの生成がセットアップされているとのODataのために設定してこれを正しく文書化してください。

Iは非修飾名がまだしかし闊歩

のsendEmail

/ルートは

POST/ODATA /個体({individualId})で正常に動作

config.EnableUnqualifiedNameCall(true); 

で呼び出し可能「デフォルト」のオリジナルを表示します。テストはSwagger UIからは機能しなくなりました。

Default.SendEmailとSendEmailの両方を許可する方法、またはSwaggerをEnableUnqualifiedNameCallに基づいて正しく更新する方法を教えてください。

答えて

0

同じことが起こりました。私が解決するために見つけた唯一の方法は、接頭辞をdocumentFilterの正規表現で削除することでした。 ODataConventionModelBuilderオブジェクトのプロパティで同じ名前空間のセットを取得

c.DocumentFilter(() => new SwaggerDocumentFilter());

class SwaggerDocumentFilter : IDocumentFilter 
{ 
    public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) 
    { 
    swaggerDoc.paths = swaggerDoc.paths.Select(entry=> 
     new { 
     key = new Regex(ODataNameSpace + @"\.", 
        RegexOptions.Compiled | RegexOptions.IgnoreCase) 
      .Replace(entry.key, string.Empty), 
     value = entry.Value 
    }) 
    } 
} 

(regretfuly、それを削除することは有効なオプションではありません)