REST API是区分大小写还是区分大小写?

myn*_*kow 41 rest asp.net-web-api

在工作中我们遇到了区分大小写的REST api的问题,它忽略错误的拼写参数而不返回任何错误.在我看来这很糟糕.然后是一般问题:

REST API是区分大小写还是区分大小写?

每种方法的优点和缺点是什么?

Skl*_*vvz 40

正如其他人所回答的那样,生成API的URL的HTTP部分区分大小写.这遵循UNIX约定,其中URI路径映射到文件系统路径,文件系统路径区分大小写.另一方面,Windows遵循其使路径不区分大小写的惯例.

然而,在Unix中,有两条路径只是大写不一样,这是不好的做法.此外,预计路径是小写的.

因此:让我们不要破坏惯例.

永远不应该共存.此外,products应该优先考虑Products.是否Products应该返回404,301 products或仅仅是别名products是风格问题 - 这是你的选择,但要保持一致.

Stack Overflow API规范地小写且不区分大小写.我认为这对客户来说最简单,同时具有明确的默认值并且对大多数用户来说并不令人惊讶.

毕竟,你能想到一个诚实地受益于区分大小写重叠名称的客户吗?

  • 令人敬畏的答案,作为旁注,虽然SO具有小写URL,但它们不区分大小写.更改URL中的大小写,它将落在同一页面上,而不是重定向. (4认同)

Dar*_*ler 35

HTTP URL对于方案和主机部分不区分大小写,对路径,查询和片段区分大小写.

http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19

  • 好的,我们所有开发人员应该如何设计REST API?我发现设计区分大小写的API有很多问题. (3认同)

Wil*_*ung 9

在工作中我们遇到了区分大小写的REST api的问题,它忽略错误的拼写参数而不返回任何错误.在我看来这很糟糕.

那就不要那样做了.验证您的参数.强制执行"缺失"参数.首先不要发送错误的请求.符合API,特别是在正确拼写参数的这种级别,并不是一个负担.

REST API是区分大小写还是区分大小写?

如前所述,URL区分大小写,因此这里的谈判空间不大.向上/向下移动网址/参数会使每个人感到困惑,这会使您的网址不唯一.同样,期望实现者使用正确的URL并不是一个极端的需求.这些URL(很可能)不是由随机人员输入的,而是实现代码或网页.最后,这只会影响入口点URL.其余的URL应该是从有效负载中提取的直接副本,因为您正在关注HATEOAS.这些网址根本不应该被搞乱,而只是鹦鹉学舌.

简单地说,如果区分大小写是一个问题,那么你做错了.

每种方法的优点和缺点是什么?

优点是API的一致性,清晰度和正确执行.没有缺点.

  • https://tools.ietf.org/html/rfc3986#section-6.2.2.1"方案和主机不区分大小写,因此应该标准化为小写...其他通用语法组件假定区分大小写除非该计划另有明确定义"假定因为它取决于实施,即取决于您. (5认同)
  • URL不区分大小写.文件系统可以区分大小写,这会对URL产生连锁反应. (4认同)
  • @phill您能提供参考吗,因为我有99.9%的把握Rfc7320会说HTTP URL的路径和查询区分大小写 (2认同)