如何注释ASP.NET WebAPI操作,以使庞大的元数据包含资源支持的内容类型?
具体来说,我希望文档显示我的资源之一可以返回“原始” application/json
和application/xml
,但现在还可以返回新格式application/vnd.blah+json
或+xml
。
最佳答案
您需要做的是这个;
摇摇规格:
您需要将响应类型添加到该操作的响应类型列表中:
"produces": [
"application/json",
"text/json"
],
这可以通过OperationFilter来完成。伪代码传入!!!
public class CustomResponseType : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "myCustomName")
{
operation.produces.Add("application/vnd.blah+json");
}
}
}
可以通过[SwaggerOperation("myCustomName")]
注释设置OperationId。然后在swaggerConfig.cs中应用operationsFilter:
c.OperationFilter<CustomResponseType>();
注意:代替
operation.operationId == "myCustomName"
您可以针对特定路线或其他任何方式进行操作。 ApiDescription提供了许多有关上下文的信息。
关于asp.net-web-api2 - Swashbuckle Swagger-如何注释内容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34990291/