我正在开发一个rest-api。
我的api在sql语句中映射了一个查询字符串,如:email=xyz@gmail.com&gender=MALE
:where email = xyz@gmail.com.br and gender = MALE
那么为什么不使用POST方法而不是GET传递SQL statament?
有最佳做法吗?
答案 0 :(得分:1)
因为那不是REST,所以它就像SOAP。
REST是关于它们的资源和操作。如果使用HTTP实现REST,则应使用HTTP谓词进行特定操作:
GET
用于获取资源POST
用于在集合中创建新资源(加上一些特殊情况PUT
用于更改现有资源DELETE
用于删除现有资源这些动词必须遵循特定的行为。其中之一是GET
不得更改资源,而POST
通常会更改资源。
使用POST
代替GET
是针对REST和所有已建立的标准。
为什么不使用POST传递SQL statament
因为这会向用户公开有关您的实现的详细信息。这可能会打开安全漏洞。 REST是关于资源,一种抽象,而不是关于公开数据库的简单方法。