验证REST API的URL资源

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

鉴于以下网址:

http://localhost:port/books/[:id]

其中[:id]代表书籍id。

检查id值是null还是空是否明智?

据我所知,每个网址都是唯一的,可以将用户带到特定的目的地。因此,甚至不需要验证[:id]

所以我要说我验证了[:id]。

我有另一个网址,可以列出所有书籍

http://localhost:port/books

这不是冲突吗?

rest
1个回答
0
投票

自打电话以来,它不会发生冲突

http://localhost:port/books/  # Notice the last slash

与...不同

http://localhost:port/books

它们将通过不同的控制器方法接收。

例如,在Java中:

@GET
@Path("/resources/{id}/")
public Resource getResource(@PathParam("id") long id);

@GET
@Path("/resources")
public List<Resource> getAllResources();

我们可以看到,第一种检索资源的方法映射在/resources/{id}上。

另一方面,检索所有资源的第二种方法映射在/resources上。这是API中的另一个终点。

如果使用空id调用第一个方法,API将无法找到所请求的资源(因为它为null)。应该在后端以某种方式处理此NPE并返回对前端的相应响应。

你可以检查这个完整的guide about RESTful发展

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