Tom*_*ste 5 rest swagger swagger-ui swashbuckle asp.net-core
我想要什么:
我希望能够生成将键/值传递到URL的swagger文档.这样我就可以使用通用参数控制器来处理像Dictionary这样的请求.
如果swagger无法生成它,有没有办法通过对我的对象使用反射来生成文档?这样我仍然可以使用泛型方法
如果没有,那么最好的方法是让每个人都知道正确的方法是什么.
我为什么要这样做
我正在开发一个新的API,我正在使用swagger来创建文档.在这个API中,我想使用一些通用方法来防止硬编码.例如,在PATCH
方法上,我使用a Dictionary<string, string>
来获取属性/值组合,在GET
我使用自定义对象作为参数.在这两种情况下,swagger都无法生成正确的参数字段,因为它将参数作为url键.
示例动作和表单 - 不正确
public async Task<IActionResult> Patch(int id, Dictionary<string, string> viewModel)
{
return await ConnectionWrapper(() => connector.Patch(id, viewModel));
}
Run Code Online (Sandbox Code Playgroud)
这使用正文而不是查询
其他例子 - 不正确
在GET中,我有一个带有自定义模型绑定器的模型来处理所有其余的URL参数.问题是因为定义了模型,它将过滤器视为属性.
然后它在URL中,但它看起来像http://example.com/controller/method/id?sort=prop_asc&filter=propTwo%3D=value,而不是http://example.com/controller/method/ ID?排序= prop_asc&propTwo =值
期望的输出
我已修改HTML以模拟上图中我想要的内容.要调用的URL是http://example.com/controller/method/id?propertyName=propertyValue.
我不介意是否只有一个选项来添加通用键/值对,因为有了它我可以演示我想要的东西.
预期的解决方案
我认为解决方案在于MapType
swagger 的启动方法或者在实现中IOperationFilter
,但是我还没弄清楚.
归档时间: |
|
查看次数: |
373 次 |
最近记录: |