使用带有RESTful API的GET接收数据

时间:2016-02-27 18:21:28

标签: api rest restful-architecture

我正在构建一个API。在请求用户数据时,这被证明是检索数据的最佳做法:

请求ID为

的用户数据
https://api.example.com/users/1

然而,通过电子邮件请求用户数据会更方便:

https://api.example.com/users/johnsmith@outlook.com

使用第二种方法是否安全?即使我要使用第一种方法,开发人员也无法知道他们想要请求的用户的ID,因此根本不会有用。

第二种方法安全吗?如果没有,是否有解决方案?感谢。

2 个答案:

答案 0 :(得分:0)

在URL中传递电子邮件地址不是一个好主意,因为它是非公开信息。如果你真的需要使用电子邮件地址,那么请使用POST电话,或者如果你在API端使用适当的授权,你可以使用完全安全的id。

答案 1 :(得分:0)

只要ID在URI中是唯一且可解析的。 ' @'需要编码成"%40"。除了它的罚款,恕我直言。如果您有两种不同类型的标识符,例如电子邮件和ID,那么您可能希望允许客户端选择要使用的标识符

https://api.example.com/users?email=johnsmith@outlook.com

https://api.example.com/users?id=1

Here is some good literature了解如何在REST API中使用过滤器。