繁体   English   中英

将多个参数之一发送到REST API并使用它

[英]Send one of multiple parameters to REST API and use it

我使用MEAN堆栈来开发应用程序。 我正在尝试开发一个restful API来通过名字或姓氏获取用户
我应该编写一个get函数来获取firstname和lastname的用户吗?
编写要由后端处理的URL的最佳做法是什么?
我应该使用以下? 通过firstname获取用户:localhost:3000 / users?firstname = Joe
要按名称获取用户:localhost:3000 / users?firstname = Terry
然后检查我的代码中的参数是什么并继续。

换句话说,如果我想将多个参数中的一个传递给restful API并仅通过一个参数进行搜索,那么最佳做法是什么?
我应该使用内容位置标题吗?

没有单一的最佳实践。 设计REST接口有很多种不同的方法。 您可以使用主要基于路径的方案,例如:

http://myserver.com/query/users?firstname=Joe

或主要基于查询参数:

http://myserver.com/query?type=users&firstname=Joe

或者,甚至完全基于路径:

http://myserver.com/query/users/firstname/Joe

只有最后一个方案规定只能传递一个搜索条件,但这可能也是这个方案的一个限制因素,因为如果你在将来的某个时候想要能够搜索多个参数,那么你' d可能需要重新设计。

通常,您需要考虑以下因素:

  1. 列出您认为您的REST API现在以及将来可能要做的所有事情。
  2. 设计一个方案,预测上面列表中的所有内容并感觉可扩展(您可以轻松地添加更多内容而无需重新设计任何内容)。
  3. 设计一个方案,使客户对它所做的所有不同事情都保持一致。 例如,应该一致地使用路径和查询参数。 您不希望API的某些部分仅使用路径段,而另一部分看起来像只使用查询参数的完全不同的设计。 两者的适当组合通常是最干净的设计。
  4. 为那些不了解您的功能的人挑选一个“有意义”的设计。 它应该在逻辑上阅读,并且使用良好的REST API,URL通常是相当自我描述的。

因此,我们无法在您的一个URL上真正提出具体建议,因为它确实需要在整个API中进行考虑。

在上面三个例子中,我不知道你正在尝试做什么的其他内容,我喜欢第一个例子,因为它把我感觉到的内容放在路径/query/users ,然后将参数放入该操作进入查询字符串并且可以轻松扩展以向查询添加更多参数。 而且,它读得非常清楚。

显然,有许多不同的方法可以成功设计和构建REST API,因此没有单一的最佳实践。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM