RESTful URI斜杠或无斜杠

问题描述 投票:0回答:1

关于Restful URI的斜杠,我是否可以引用权威位置? Roy Fielding的一位很棒。网上都有权威的意见。这两个位置是:尾部的斜杠表示资源,没有则没有。另一个论点是尾部的斜杠没有语义值。哪有示例:

@GetMapping(path = "/users/")
  public List<User> getUsers() {
   ....
  }

  @GetMapping(path = "/users/{id}")
  public User getUser(@PathVariable String type)  {
   .....
  }

  @PutMapping(path = "/users/")
  public User updateUser(@RequestBody User user) {
   ....
  }

  @PostMapping(path = "/users/")
  public User createUser(@RequestBody User user) {
   ....
  }

  @DeleteMapping(path = "/users/{id}")
  public void deleteUser(@PathVariable Long id) {
   ....
  } 

是否应删除斜杠?

rest restful-url
1个回答
0
投票

以下网址:

http://example/foo
http://example/foo/

不是相同的网址。缓存将分别存储它们。因此,从这个意义上讲,存在真正的区别。规范化URL不会删除它们。

每个URI(是否以斜杠结尾)都将指向一个资源。

据我所知,也没有使用任何具体建议。一些协议(例如WebDAV)使用它来建议以斜杠结尾的URL表示它是一个集合。

以斜杠结尾的一个小好处是文档内的相对URL(不以斜杠开头)将引用集合中的项目。利用此优势意味着客户端需要正确解析相对URL,这并不总是正确的。

我见过的大多数API都不以斜杠结尾。对于某些人来说,以斜杠结尾(并要求这样做)可能是令人惊讶的行为。

没有官方消息,因为我认为它们不存在。我对标准非常了解,因此对此很有信心。

© www.soinside.com 2019 - 2024. All rights reserved.