あなたがそれを考える前に、 this は同じではありません。
これはかなり自明のはずだと思います。 Swaggerドキュメントにクラスの説明を含めたいと思います。私のSwagger
設定は次のようになります。
config.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "My Api Name");
c.OperationFilter<AddAuthorizationHeaderParameterOperationFilter>();
c.IncludeXmlComments(GetXmlCommentsPath());
}).EnableSwaggerUi(c => { });
そして、MyAwesomeController
は次のようになります:
/// <summary>
/// Controller description (is included by Swashbuckle)
/// </summary>
public class MyAwesomeController : ApiController
{
/// <summary>
/// Method description (is included by Swashbuckle)
/// </summary>
public IHttpActionResult Get()
{
return Ok("hello... from the other side");
}
public IHttpActionResult Post([FromBody]MyAwesomeModel model)
{
return Ok("hello... from the other side");
}
}
そして私のMyAwesomeModel
は次のようになります:
/// <summary>
/// **I would like this to be included in the Swagger description of the parameter**
/// </summary>
public class MyAwesomeModel
{
/// <summary>
/// **I would like this to be included in the Swagger description of the parameter**
/// </summary>
public string MyProperty { get; set; }
}
Sr. Skeetを雇わなくてもこれは可能ですか?
うーん...だから多分誰かがこれに遭遇した場合。
基本的に、これを実行できる1つの方法を見つけ、デフォルトで実行されなかった理由を理解しました。それが最善のアプローチであるかどうかはわかりませんが、ここで説明します。
私のソリューションでは、POCOは実際のAPIとは別のプロジェクトに配置されているため、クラスとプロパティのXMLノードが生成されなかったため、MyAwesomeModel
のコメントの説明は含まれていませんでした。そのため、POCOが配置されていた別のプロジェクトで、プロパティを変更してXMLを生成しました。
Swashbuckle
で検索するパスにコピーされていることを確認してください。プロジェクトのプロパティで_Post-build event command line
_を使用しました。copy "$(SolutionDir)MyAwesomeProjectWithPocos\bin\MyAwesomeProjectWithPocos.xml" "$(ProjectDir)\bin\MyAwesomeProjectWithPocos.xml"
SwaggerConfig
を変更して、このXMLも含めますつまり.
_config.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "My Api Name");
c.OperationFilter<AddAuthorizationHeaderParameterOperationFilter>();
c.IncludeXmlComments(GetXmlCommentsPath());
c.IncludeXmlComments(GetXmlCommentsPathForModels());
}).EnableSwaggerUi(c => { });
_
これで、Swaggerページで、_Model Schema
_からModel
に切り替えると、モデル全体とプロパティの説明を読み取ることができます。
当然、XMLファイルをコピーする必要はありません。ステップ3 GetXmlCommentsPathForModels());
で正しい場所を指定するだけでもかまいませんが、これは私のオプションでした。
あなたが以下の声明を出した場合
c.IncludeXmlComments(GetXmlCommentsPath());
Xmlコメントパスメソッドが、プロジェクトXMLドキュメントファイルが配置されているxmlファイルのパスを返すかどうかを確認できますか?