同程旅遊網開放平臺SDK開發完成

最近利用業餘時間,使用了同程旅遊網的開放平臺,並對大部分的方法進行了調用,發現有不少很差用的地方,好比json

1.同一個開放平臺竟然有幾個調用地址,景區調用http://tcopenapi.17usoft.com/handlers/scenery/queryhandler.ashx ,酒店調用http://tcopenapi.17usoft.com/handlers/hotel/QueryHandler.ashxapi

2.只能返回xml格式,在如今大多數平臺能夠返回json的狀況下,竟然只能返回xml,並且還不能直接反序列化爲對象。除非本身實現這個反序列化的過程。工具

3.錯誤信息提示不夠充分,無處能夠查詢詳細信息。測試

4.客戶端調用非要傳入clientIp,哪怕是127.0.0.1均可以,實在不明白這樣作有和意義。ui

5. 實體對象不一致,同一個對象,不一樣接口返回的xml用不一樣的tag,讓你沒法使用反射等特性來對給屬性賦值。spa

......code

以上總總,總之一句話,很差用。xml

 

本人在使用的過程當中,力圖抹平這些不一致。開發了一整套針對同程網開放平臺的sdk。上圖。對象

 

上圖是sdk的總體結構,blog

Domain ->實體對象文件夾

Facade ->接口調用外觀層,裏面有兩個Facade,裏面都是靜態方法,後面介紹這兩個類的具體用法

Request ->請求參數的封裝,封裝後的request,將在發送請求到服務端的時候,自動序列化爲同程網開放平臺接口所須要的xml。

Response ->返回數據的封裝,封裝後的response,將直接是對象的形式,你能夠盡情地點,而後選擇屬性,而後就ok了。

Util->sdk通用的工具類。

 

 

上圖是接口外觀層的封裝,都是靜態方法,你只須要實例化request,而後設置參數,而後調用外觀層方法,就能夠獲得所要的結果。

 

 

上圖示範如何使用。如今使用是否是很是之簡單哇!

 

 

 

 

以上兩圖是quick watch的圖片。已經所有包裝成對象的形式,和返回的xml基本一致。


 鑑於不少朋友找我要sdk,特開放源碼下載,若有問題請自行修改並測試

bin:http://files.cnblogs.com/jackhuclan/tcsdk.rar

sourcecode:http://files.cnblogs.com/jackhuclan/tcsdk_sourcecode.zip

相關文章
相關標籤/搜索