對REST資源定位的兩點看法

2021-05-07 13:38:59 字數 808 閱讀 2512

初識rest資源服務,感覺春天總算到了。「web伺服器只提供資源服務」,多麼清晰簡潔的表述。這表述讓我欣喜若狂,所有困惑一掃而光,接下來趕緊深入了解。

要提供資源服務,首先需要對資源進行定位,然後才能對資源進行進一步操作。這與物件導向思維模式一致,先找物件,然後對物件進行操作。rest告訴我們,可以通過url進行定位。比如,要訪問學生張三,可以寫出如下的url:

/students/張三

說法很正確,也很籠統。對於資源定位,rest沒有給出更明確的說法。通過實踐與總結,我們發現資源定位應該分兩種情況。一種是定位到單個資源,如上面的學生張三。另一種是定位到集合,如定位到所有學生的集合。定位到單個資源與定位到集合,能進行的變更操作是不同的。當定位到單個資源時,比如學生張三,能進行的變更操作只能是修改或者刪除。而定位到集合,能進行的變更操作只能是新增或者移除。請注意:刪除與移除動作的區別,移除是指把物件從集合中去掉,而物件本身還在,而刪除則是指把物件徹底從系統中刪除。

以上是我們對資源定位的第一點看法。第二點看法,當從系統中獲取資源內容,而不是進行變更時,url是否合適?答案是否定的,這時候更合適的表示方式是xpath,因為xpath可以在路徑中包含條件。比如要獲取一年級一班年齡大於7歲的學生家長的職業,可以寫出如下的xpath表示:

/grid[1]/class[1]/student[age>7]/(father/job,mother/job)

xpath是我們目前發現的,最適合檢索的表示方式,比sql、hql等都直觀簡潔。在具體實現中,我們把xpath翻譯成了hql,然後呼叫hql查詢完成檢索工作。

xpath不足處在於無法進行排序,我們會對xpath語法進行擴充,以滿足排序要求。

定位(1) 兩點對 兩旋轉角度計算轉換矩陣

已知 座標系a和座標系b 全站儀座標系 大地座標系 豎直方向向上 對應的兩個點的座標。點1在a座標系下的座標a1 x1,y1,z1 點1在b座標系下的座標b1 x01,y01,z01 點2在a座標系下的座標a1 x2,y2,z2 點2在b座標系下的座標b1 x02,y02,z02 座標系a的俯仰角度...

確定兩點之間的點

egret.point.interpolate 確定兩個指定點之間的點。引數 f 確定新的內插點相對於引數 pt1 和 pt2 指定的兩個端點所處的位置。引數 f 的值越接近 1.0,則內插點就越接近第乙個點 引數 pt1 引數 f 的值越接近 0,則內插點就越接近第二個點 引數 pt2 param...

兩點間的距離

設計乙個名為 mypoint 的類,表示乙個帶jc 座標和少座標的點。該類包括 編寫乙個測試程式,建立兩個點 0,0 和 10,30.5 並顯示它們之間的距離。如下 public class mypoint mypoint double x,double y public double getx p...