Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 如何在Angular2中发送筛选器和排序信息?_Rest_Http_Angular_Angular2 Http_Primeng - Fatal编程技术网

Rest 如何在Angular2中发送筛选器和排序信息?

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": {

我正在尝试使用PrimingDataTable,它有一些排序和过滤功能。我想将搜索/筛选数据发送到我的restful api,但我无法决定如何执行

数据如下:

{
    "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时,更重要的部分是保持一致性,因此无论选择什么,对于出现的任何其他复杂搜索,都要坚持使用它

然而,你不是第一个提出这样一个问题的人,关于这个问题的更多背景,我想告诉你,或者