验证REST API的URL资源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证REST API的URL资源相关的知识,希望对你有一定的参考价值。

鉴于以下网址:

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

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

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

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

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

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

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将无法找到所请求的资源(因为它为null)。应该在后端以某种方式处理此NPE并返回对前端的相应响应。

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

以上是关于验证REST API的URL资源的主要内容,如果未能解决你的问题,请参考以下文章

用于身份验证的 REST API URL 的最佳实践

REST 操作和 URL API 设计注意事项

WP REST API 的 JWT 身份验证:“找不到与 URL 和请求方法匹配的路由”

Github 糟糕的 REST API 设计

Mongolab REST API 如何进行身份验证

Mongolab REST API 如何进行身份验证