【问题标题】:WebApi documentation not recognizing endpointsWebApi 文档无法识别端点
【发布时间】:2015-08-25 21:22:16
【问题描述】:

我有多个控制器端点,路由如下:

[Route("api/myobjects/action1/action2/{objectIds}")]

它们都有这样的方法签名(访问修饰符和返回类型被省略):

Post([ModelBinder(typeof(CommaDelimitedArrayModelBinder))] int[] objectIds)

自定义模型绑定器允许我像这样发布到端点:

../api/myobjects/action1/action2/1,2,3

这很好用!但是,帮助页面文档生成过程会忽略所有这些方法。

如果我像这样删除 modelbinder 属性:

Post(int[] objectIds)

还是不行。只有当我将[FromUri] 添加到参数并从路由属性中删除{objectIds} 时它才会起作用:

Post([FromUri] int[] objectIds)

但这会生成一个不需要的 uri,如下所示:

../api/myobjects/action1/action2?objectIds[0]={objectIds[0]}&objectIds[1]={objectIds[1]}

如何让帮助页面文档流程识别我的端点?

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api-helppages


    【解决方案1】:

    您需要像这样更新 HelpPageConfig config.SetActualResponseType(typeof(ObjectType), "Object", "MethodName");

    使用它,您可以在 web api 中启用相应 URL 的帮助

    【讨论】:

    • 遗憾的是,这对我遇到的问题没有影响。我尝试了 config.SetActualResponseType 和 config.SetActualRequestType。
    • 如果您使用的是 web api 2,可以安装一个 nuget 包来显示帮助页面,它会自动找到端点,抱歉回复延迟
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2019-07-17
    • 1970-01-01
    • 2020-11-08
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多