使用模板将Web服务的结果转换为标记语言
核心要點
\- HTTP-RPC是一個開源的框架,用來在Java中構(gòu)建REST服務(wù); \
- 同一個代碼庫,可以服務(wù)于Web、移動和桌面客戶端; \
- 默認(rèn)提供了JSON響應(yīng)數(shù)據(jù); \
- 通過使用模板,支持基于HTML的資源表述; \
- 同時還可以生成XML、CSV等格式。
Web服務(wù)是一種實現(xiàn)應(yīng)用邏輯的方式,能夠通過HTTP進(jìn)行遠(yuǎn)程訪問。它們允許分布式的客戶端與服務(wù)端的功能進(jìn)行交互,這些客戶端通常可能是異構(gòu)的,服務(wù)還經(jīng)常會用來為移動應(yīng)用提供后端API。但是,它們在實現(xiàn)的時候,往往會采用與應(yīng)用程序Web前端相獨立的軟件棧,這樣的話,就會導(dǎo)致額外的開發(fā)和維護(hù)成本。\
模板是一種將數(shù)據(jù)與展現(xiàn)分離的方法。它們能夠輸出針對特定數(shù)據(jù)結(jié)構(gòu)的格式,不過模板與數(shù)據(jù)本身是相互獨立的,這樣就為兩者的責(zé)任畫出了清晰的界限。在MVC術(shù)語中,模板代表了視圖,而數(shù)據(jù)結(jié)構(gòu)代表了模型。Web服務(wù)擔(dān)任了控制器的角色,接受調(diào)用者的輸入,生成模型數(shù)據(jù)并將模板用到模型上,從而產(chǎn)生最終的結(jié)果。\
使用HTTP-RPC框架實現(xiàn)的Web服務(wù)會有相應(yīng)的輸出,我們可以借助CTemplate系統(tǒng)(也叫作Mustache)所編寫的模板將輸出轉(zhuǎn)換為HTML。這樣的話,一個應(yīng)用可以同時服務(wù)于Web和移動客戶端,提升了同一個代碼庫的使用效率,顯著降低總體的開發(fā)成本。\
HTTP-RPC
\HTTP-RPC是一個開源框架,用于簡化基于REST的應(yīng)用開發(fā)。它允許開發(fā)人員創(chuàng)建和訪問基于HTTP的服務(wù),在這個過程中采用了一種便利的、類似于RPC隱喻的做法,同時又保持了REST的基本原則,如無狀態(tài)和統(tǒng)一資源訪問。關(guān)于HTTP-RPC的更多信息,我之前的文章進(jìn)行更為全面的介紹。\
HTTP-RPC服務(wù)要通過HTTP動作來進(jìn)行訪問,比如對目標(biāo)資源的GET或POST請求。目標(biāo)是通過路徑來進(jìn)行指定的,路徑代表了資源的名稱,通常會使用一個名詞來組成URL,比如/calendar或/contacts。\
參數(shù)會通過查詢字符串或類似于HTML表單那樣的請求體的方式來提供。結(jié)果通常會返回JSON格式,當(dāng)然不返回任何值的操作也是支持的。\
例如,如下的請求將會得到兩個數(shù)字的和,這兩個數(shù)字分別是通過a和b這兩個查詢參數(shù)指定的:
GET /math/sum?a=2\u0026amp;b=4\服務(wù)將會在響應(yīng)中返回6這個值。\
樣例服務(wù)
\WebService類是一個用于HTTP-RPC Web服務(wù)的基礎(chǔ)抽象類。我們定義服務(wù)操作的方式就是為某個具體的服務(wù)實現(xiàn)添加公開方法。\
@RPC注解用來標(biāo)記某個方法可以進(jìn)行遠(yuǎn)程訪問。這個注解會為方法關(guān)聯(lián)一個HTTP動作和資源路徑。當(dāng)服務(wù)發(fā)布之后,所有帶有注解的公開方法將會自動允許遠(yuǎn)程執(zhí)行。\
例如,如下的類可以用于實現(xiàn)我們前文所述的簡單加法操作:
public class MathService extends WebService {\ @RPC(method=\"GET\總結(jié)
以上是生活随笔為你收集整理的使用模板将Web服务的结果转换为标记语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 7.0 多窗口模式
- 下一篇: MySQL5.7号称永久解决了复制延迟问