给定以下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开发的完整指南