Hasor RESTful

2018-10-09 10:39 更新

Hasor Web 框架除了前面提到的 傳統(tǒng) MVC 開發(fā)方式,它還支持 RESTful 形式的請求。 restful 已經(jīng)被廣泛的應(yīng)用在 http 協(xié)議下的微服務(wù)實現(xiàn)手段。

Hasor Web 框架的 Api 已經(jīng)混合了 RESTful 和 傳統(tǒng)的 MVC 聲明。因此使用 Hasor 開發(fā) RESTful 您不必理解和記憶更多的 API 接口。下面我們以 User 操作為例,介紹一下 Hasor 的 RESTful Api 的用法。

首先:查詢 User。我們在 MappingTo 中通過表達(dá)式 ${userID} 聲明一個路徑參數(shù) userID。然后我們在 execute 方法中 userID 參數(shù)上映射這個路徑參數(shù)。

@MappingTo("/user/info/${userID}")
public class HelloAcrion extends WebController {
    public void execute(RenderInvoker invoker, @PathParam("userID") long userID) {
        ...
    }
}


下面我們加入 User 的修改功能,為了區(qū)分 User 查詢,我們使用 Post、Get 加以區(qū)分。

@MappingTo("/user/info/${userID}")
public class HelloAcrion extends WebController {
    @Post
    public void updateUser(RenderInvoker invoker, @PathParam("userID") long userID) {
        ...
    }
    @Get
    public void queryByID(RenderInvoker invoker, @PathParam("userID") long userID) {
        ...
    }
}


或者我們可以通過兩個 RESTful 參數(shù)來簡化一下思路。

@MappingTo("/user/info/${userID}/${action}")
public class HelloAcrion extends WebController {
    public void execute(RenderInvoker invoker, 
                @PathParam("userID") long userID, @PathParam("action") String action) {
        if ("update".equals(action)){
            ...
        } else if ("delete".equals(action)){
            ...
        } else {
            ...
        }
    }
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號