【问题标题】:Web API Routes conflicting with each otherWeb API 路由相互冲突
【发布时间】:2020-07-23 13:24:41
【问题描述】:

抱歉,如果之前有人问过这个问题,我可能搜索得不够好。

我正在使用属性路由。基本上我有
[Route("api/studies")],它给了我一个类型研究的列表。
[Route("api/studies/{id}/{detail?}")] 这给了我一个单一的研究。这有一个可选参数 detail,它指定详细程度。
[Route("api/studies/{id}/subjects")] 这给了我研究中的主题列表。

问题是,当我测试主题路线时,它会调用/api/studies/{id}/{detail?} 并将“主题”作为详细参数传入。我完全理解为什么,我只是好奇是否有办法防止它。

【问题讨论】:

  • {detail?} 分配一个更高的order?
  • 我在下面找到了它,虽然是在发布问题后我发现了 order 属性。

标签: c# api routing


【解决方案1】:

好的,伙计们,我想通了。首先,我没有给他们下订单。我这样做了,仍然没有工作。但是...对我的帖子并不完全诚实,我遗漏了一些我认为不相关的东西。被试有一堆可选参数,都是整数,我觉得这样放就可以了:
public List<Subject> Subjects(long id, int? limit, int? offset)

显然这还不够好。需要是:
public List<Subject> Subjects(long id, int? limit = null, int? offset = null)

不知道我必须将它们分配为 null!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-14
    • 2014-05-28
    • 2018-02-28
    • 2021-08-24
    • 1970-01-01
    • 2011-11-05
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多