【问题标题】:designing two webapi methods with same base url设计两个具有相同基本 url 的 webapi 方法
【发布时间】:2015-04-24 21:46:36
【问题描述】:

在我设计的 WebAPI 中,我有诸如

之类的网址
https://<base_url>api/projects/{projectId}/samples/ (POST)

我需要使用 POST 和相同的基本 URL 指定另一种方法,它的作用类似于原始方法,但接受不同的有效负载并返回不同的有效负载。目前我有

https://<base_url>api/projects/{projectId}/samples/savemasscreation 

“修改”,但我不确定这是一个好的 API 实践。在无需更改资源 URL 的情况下为方法设计修饰符的最佳方法是什么?最佳做法是什么 - 使用另一个 HTTP 动词、将 ?optionalparameter 添加到 URL 或其他什么?

【问题讨论】:

  • 您能否更详细地描述谁发布操作。它们是以不同方式与同一个对象交互还是完全不同的对象交互?
  • @SteveFenton 更像是不同的对象,但逻辑动作是一样的
  • 我希望 URL 能反映出这一点……即 https://&lt;base_url&gt;api/customers/https://&lt;base_url&gt;api/orders/(例如,两者都是 POST)。

标签: asp.net-web-api crud apiblueprint


【解决方案1】:

如果您使用.NET,您可以使用[Route()] 属性指定路由,并且这些方法必须接受不同数量的参数才能工作,因为它们都是POST。见this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多