關於構建REST風格的SOE的策略

孫群發表於2013-01-08

為了能夠建立REST風格的SOE,你需要仔細的計劃什麼資訊什麼型別的資訊會被髮送到伺服器以及你期望返回什麼內容。要考慮到REST SOE包括資源和操作。如下所示:

資源就是你從伺服器獲取的一些資訊,比如有可能是地圖下的圖層列表或者是切片地圖中可用層級的資訊。如果你有一定的程式設計經驗的話,可以把資源看成一種只讀屬性。

操作就是讓伺服器對資源進行處理的方法。在執行完一項操作之後,你可能獲取文字資訊、影象或者是其他資訊。操作就相當於程式設計中的方法。

在你開始編寫REST SOE程式碼之前,你需要確定SOE需要暴露哪些資源與操作。如果有必要的話,你可以畫一個圖表,並註明每項的輸入引數以及輸出結果。REST SOE可以暴露多個資源與操作,如此一來有可能會導致你的SOE非常複雜。如果你剛剛開始學習SOE,你最好用只有一個操作的SOE作為練習。

為什麼在你編碼之前設計REST SOE的schema如此重要?因為你需要通過程式設計的方式來建立你的SOE的schema。通過相應的模板開始建立SOE,你需要將模板中的資源和操作替換成你自己的資源與操作。從根資源(你的SOE的根URL)開始,逐漸增加資源與操作,知道你的schema建立完成。

你需要建立schema的另一個原因是你需要對所有的請求以及反映結果進行序列化與反序列化。比如,輸入了x、y座標作為一個操作的引數,這些資訊會以JSON的形式傳遞到伺服器。在你的程式碼中,你需要實現讀取這個JSON資料並從中獲取x、y座標將其轉換為IPoint介面或者轉成成其他GIS用來進行處理的物件。ESRI.ArcGIS.SOESupport庫可以幫你完成這些,但是你最好還是你傳入服務的型別以及服務的響應結果的型別,這樣你就可以為反序列化與序列化做好準備。

相關文章