2016-11-01 72 views
1

我正在研究與ServiceM8的集成,並希望使用$ filter REST API進行多個過濾。像company_uuid和狀態。 ServiceM8文檔爲他們提供了以下示例,但不包括'OR'/'AND'類型邏輯的任何用法。ServiceM8 - 我可以過濾多個字段嗎

"https://api.servicem8.com/api_1.0/job.json?%24filter=company_uuid%20eq%20'10420f98-7626-4405-bf43-043f1036623b' 

回答

1

更新

您仍然可以通過大多數字段的過濾器,但只有一個

排除完成作業

  • 的過濾器(在上下文中的整個URL)來排除完成的作業是:
  •  
    "https://api.servicem8.com/api_1.0/job.json?%24filter=status%20ne%20%22Completed%22"

  • 建設:

     
    %24 : $ 
    %20 : (space) 
    %22 : " 
    & : & 
    " : "


就我所見,它仍不能與任何其他過濾器一起使用。添加過濾器或者導致500錯誤,或一個過濾器將工作和其他將被忽略,或者它甚至有時會返回響應告訴你不要打擾:

  • {"errorCode":400,"message":"Advanced Record Filter Queries Not Supported"}

現實情況是,在寫這篇文章的時候,那是不可能的。 Filtering頁面上的功能(當前最新修訂版2014年7月1日)是其功能的絕對範圍。即使如此,它並不完全工作(例如,過濾活動狀態根本不起作用)。

檢索整個終點是一樣快,但很明顯,這取決於您的應用程序可能有不良的處理或帶寬的影響

或許中途會選擇最歧視性的過濾器,以檢索您的工作數據。

  • 即,您可以使用此過濾器讓所有的工作,因爲2016年7月1日:

  •  
    %24filter=date%20gt%20%222016-07-01%22

那具體的例子實際上包括在7月1日的工作(有沒有ge過濾器可用),但它的猜測工作,您並不知道如何將gt應用於您的數據,因爲文檔僅提供了匹配確切的uuid和單個數字比較的示例。

+0

hmedia1,感謝您的回覆和建議。我們會考慮這一點。對於一家公司來說,我們可能對所有喬布斯都可以,但考慮未來,排除「已完成」工作將會很好。我們當然可以拉出整個終點,然後在客戶端進行過濾。 – kheiberg

+0

一切都很好,你至少可以使用更新後的答案排除已完成的問題。 – hmedia1

+0

hmedia1,哇的thx更新的答案做得好。但是你知道我必須測試活動狀態是否正常工作...... yep根本不起作用。 – kheiberg