codecamp

Hasor RESTful

Hasor Web 框架除了前面提到的 传统 MVC 开发方式,它还支持 RESTful 形式的请求。 restful 已经被广泛的应用在 http 协议下的微服务实现手段。

Hasor Web 框架的 Api 已经混合了 RESTful 和 传统的 MVC 声明。因此使用 Hasor 开发 RESTful 您不必理解和记忆更多的 API 接口。下面我们以 User 操作为例,介绍一下 Hasor 的 RESTful Api 的用法。

首先:查询 User。我们在 MappingTo 中通过表达式 ${userID} 声明一个路径参数 userID。然后我们在 execute 方法中 userID 参数上映射这个路径参数。

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


下面我们加入 User 的修改功能,为了区分 User 查询,我们使用 Post、Get 加以区分。

@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 参数来简化一下思路。

@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 {
            ...
        }
    }
}


Hasor 请求头信息
Hasor 拦截器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }