Rest 如何在Angular2中发送筛选器和排序信息?
我正在尝试使用PrimingDataTable,它有一些排序和过滤功能。我想将搜索/筛选数据发送到我的restful api,但我无法决定如何执行 数据如下:Rest 如何在Angular2中发送筛选器和排序信息?,rest,http,angular,angular2-http,primeng,Rest,Http,Angular,Angular2 Http,Primeng,我正在尝试使用PrimingDataTable,它有一些排序和过滤功能。我想将搜索/筛选数据发送到我的restful api,但我无法决定如何执行 数据如下: { "event": { "first": 0, "rows": 10, "sortField": "isDone", "sortOrder": 1, "filters": { "title": {
{
"event": {
"first": 0,
"rows": 10,
"sortField": "isDone",
"sortOrder": 1,
"filters": {
"title": {
"value": "a",
"matchMode": "startsWith"
},
"details": {
"value": "d",
"matchMode": "startsWith"
}
}
}
}
http服务不允许使用GET发送RequestBody中的数据。我认为用HTTPPOST发送数据是违反REST标准的。我找到的解决方案是将数据放入url,但我的同事不接受,他们认为使用http post发送更好
最佳做法是什么?我应该如何发送数据?使用http post发送是可以接受的?在您的示例中,您讨论的是查询/筛选参数。可以通过GET请求发送这些。通常,如果您试图通过RESTAPI检索资源,您将使用GET而不是POST 当然,如果API是您自己构建的API,您也可以选择发布。如果您要这样做,您将创建一些过滤器/搜索端点,您可以向其发送(一组)过滤器。这通常是在更复杂的搜索情况下完成的,在这种情况下,您基本上也将搜索/筛选作为一种资源。因此,您将得到这样一个端点:
/event/filter
,在这里您可以使用filter发送POST请求
另一个选项是为公共搜索添加别名,并且仍然使用GET请求。然后端点可以改为如下所示:
/event/doneEvents?title=a&details=d&top=10
最后,解决这个问题的方法不止一种,对于更复杂的搜索,POST绝对是可以接受的。构建API时,更重要的部分是保持一致性,因此无论选择什么,对于出现的任何其他复杂搜索,都要坚持使用它
然而,你不是第一个提出这样一个问题的人,关于这个问题的更多背景,我想告诉你,或者 在您的示例中,您讨论的是查询/筛选参数。可以通过GET请求发送这些。通常,如果您试图通过RESTAPI检索资源,您将使用GET而不是POST 当然,如果API是您自己构建的API,您也可以选择发布。如果您要这样做,您将创建一些过滤器/搜索端点,您可以向其发送(一组)过滤器。这通常是在更复杂的搜索情况下完成的,在这种情况下,您基本上也将搜索/筛选作为一种资源。因此,您将得到这样一个端点:
/event/filter
,在这里您可以使用filter发送POST请求
另一个选项是为公共搜索添加别名,并且仍然使用GET请求。然后端点可以改为如下所示:
/event/doneEvents?title=a&details=d&top=10
最后,解决这个问题的方法不止一种,对于更复杂的搜索,POST绝对是可以接受的。构建API时,更重要的部分是保持一致性,因此无论选择什么,对于出现的任何其他复杂搜索,都要坚持使用它
然而,你不是第一个提出这样一个问题的人,关于这个问题的更多背景,我想告诉你,或者