REST API的验证URL资源



给定以下URL:

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

[:id]表示书ID。

检查ID值是空的还是空的?

是明智的吗?

我了解的是,每个URL都是唯一的,它将将用户带到特定的目的地。因此,甚至无需验证[:id]

所以假设我验证了[:id]。

我有另一个应该列出所有书籍的URL

http://localhost:port/books

这不是冲突吗?

它不会发生冲突,因为调用

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将无法找到请求的资源(因为其空)。该NPE应在您的后端以某种方式对待,并根据前端返回。

您可以检查有关RESTFUL开发的完整指南

最新更新