2012-04-18 47 views
2

我有一個GPS設備,我需要得到:
- 最後的位置
- 位置動詞REST URL

關於最後一個位置的歷史,我發出上/設備/ id_of_my_gps一個GET並返回數據在json {「緯度」:2.3,「經度」:4.5,「時間戳」:「2012-04-12T12:32:45Z」}

關於位置的歷史,我不是確定最好的方法來做到這一點。
我正在考慮在/ devices/id_of_my_gps/history上發佈GET,並在查詢字符串中提供「from」和「to」時間戳(需要檢索歷史記錄的日期)作爲參數。這是否打破了REST方法?

UPDATE

它會更好從/發送到參數如JSON數據:{ 「從」: 「2012-04-12T12:32:45Z」, 「爲」:「2012 -04-15T12:32:45Z「}?

回答

3

我想作爲查詢參數的「從」 /設備/ id_of_my_gps /歷史和 提供和「到」 timetamps(日期之間的 歷史需要檢索)發出GET的串。 是否打破了REST方法?

不.REST並不限制查詢參數的使用,因此您的方法沒有任何問題。

它會更好從/發送到參數如JSON數據: { 「從」: 「2012-04-12T12:32:45Z」, 「爲」:「2012-04-15T12 :32:45Z「}?

使用較早的方法。按照您的建議,您無法發佈GET並在正文中發送數據。 GET請求不允許使用實體主體,因此如果您需要在實體主體中發送數據(在您的案例中語義不正確),您將不得不使用其他HTTP方法(PUT或POST)。

+0

感謝您的回覆。以下命令正常工作:curl -H「Accept:application/json」-H「Content-type:application/json」-XGET -d「{」from「:」2012-01-01T12:00:00 + 0200「 ,「to」:「2012-05-01T12:00:00 + 0200」}''http:// localhost:3000/devices/gps001/history'。爲什麼這是不正確的? – Luc 2012-04-18 09:26:59

+0

有關更多信息,請參閱以下SO問題http://stackoverflow.com/questions/978061/http-get-with-request-body – 2012-04-18 09:32:04