关于使用jfinal开发restful接口的DEMO

lilei430381 发布于 2016/07/06 10:59
阅读 674
收藏 0

@JFinal 你好,想跟你请教个问题:波波大哥,关于使用jfinal开发restful接口的DEMO,你有吗,麻烦贴一个链接或者贴代码出来,谢谢波总!-------------jfinal铁粉

加载中
0
圣杰是也
圣杰是也

官方demo就是

lilei430381
lilei430381
官方DEMO是哪个?我现在用的是V2.1,那里面官方的DEMO没有restful的代码,把你说到的那个含有restful DEMO的文件发给我吧,我q:1192360619,谢谢。
0
JFinal
JFinal

    restful 是 Roy T. Fielding 在2000年提出的一种软件架构风格,该架构所提到的内容非常丰富,当前很多人误以为 url 使用了Roy 建议的风格那就是 restful 项目了。对 jfinal 铁粉的回复对此问题多说几句

REST架构风格最重要的架构约束有6个:

 1:客户-服务器(Client-Server) 

   通信只能由客户端单方面发起,表现为请求-响应的形式。 

2:无状态(Stateless) 

   通信的会话状态(Session State)应该全部由客户端负责维护。

3: 缓存(Cache) 

   响应内容可以在通信链的某处被缓存,以改善网络效率。 

4:统一接口(Uniform Interface) 

   通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。 

5:分层系统(Layered System) 

   通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。 

6:按需代码(Code-On-Demand,可选) 

   支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功能进行扩展。

要深入理解REST,需要理解REST的五个关键词: 

1:资源(Resource)

2:资源的表述(Representation) 

3:状态转移(State Transfer) 

4:统一接口(Uniform Interface) 

5:超文本驱动(Hypertext Driven)

   时间关系,上述五个关键词的内容不再展开,具体可查看相关文档。以上的 restful 核心内容并未提及 url 形式,论文中提到的 url 只是一种建议。

     restful 核心之一是资源的抽象,而所有的业务都是对资源的操作,例如,order 这个抽象资源,对它的操作有 save、delete、update等等,论文中建议将对资源的操作放在http请求头中,在url 中没有体现,例如 POST "/order"、DELETE "/order/123"、GET "/order/456",这并不是一种强制,而 jfinal 为了简洁方便性直接将动作放在了 url 之中,例如:"/order/save"、"/order/delete/123"、"/order/detail/456",所以有不少人误以为 jfinal 不支持 restful。

   restful 是一个内容丰富的架构,不能仅凭 url 去判断是否为 restful 项目,在项目中应用 restful与所使用的 web 框架关系不大,使用传统的 struts 框架也照样可以开发 restful 项目。

   综上,目前 jfinal 没有一个简单的 demo 可以展示 restful架构,建议楼主参照 restful 规范直接开发该类型的项目即可。

0
lilei430381
lilei430381

引用来自“JFinal”的评论

    restful 是 Roy T. Fielding 在2000年提出的一种软件架构风格,该架构所提到的内容非常丰富,当前很多人误以为 url 使用了Roy 建议的风格那就是 restful 项目了。对 jfinal 铁粉的回复对此问题多说几句

REST架构风格最重要的架构约束有6个:

 1:客户-服务器(Client-Server) 

   通信只能由客户端单方面发起,表现为请求-响应的形式。 

2:无状态(Stateless) 

   通信的会话状态(Session State)应该全部由客户端负责维护。

3: 缓存(Cache) 

   响应内容可以在通信链的某处被缓存,以改善网络效率。 

4:统一接口(Uniform Interface) 

   通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。 

5:分层系统(Layered System) 

   通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。 

6:按需代码(Code-On-Demand,可选) 

   支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功能进行扩展。

要深入理解REST,需要理解REST的五个关键词: 

1:资源(Resource)

2:资源的表述(Representation) 

3:状态转移(State Transfer) 

4:统一接口(Uniform Interface) 

5:超文本驱动(Hypertext Driven)

   时间关系,上述五个关键词的内容不再展开,具体可查看相关文档。以上的 restful 核心内容并未提示 url 形式,论文中提到的 url 只是一种建议。

     restful 核心之一是资源的抽象,而所有的业务都是对资源的操作,例如,order 这个抽象资源,对它的操作有 save、delete、update等等,论文中建议将对资源的操作放在http请求头中,在url 中没有体现,例如 POST "/order"、DELETE "/order/123"、GET "/order/456",这并不是一种强制,而 jfinal 为了简洁方便性直接将动作放在了 url 之中,例如:"/order/save"、"/order/delete/123"、"/order/detail/456",所以有不少人误以为 jfinal 不支持 restful。

   restful 是一个内容丰富的架构,不能仅凭 url 去判断是否为 restful 项目,在项目中应用 restful与所使用的 web 框架关系不大,使用传统的 struts 框架也照样可以开发 restful 项目。

   综上,目前 jfinal 没有一个简单的 demo 可以展示 restful架构,建议楼主参照 restful 规范直接开发该类型的项目即可。

谢谢波总,如果没有DEMO的话,我想问一下Restful类中的代码,为什么把跳转的方法写死?比如说:
controller.forwardAction(controllerKey + "/show/" + urlPara);
controller.forwardAction(controllerKey + "/save");

上面两个show、save为什么写死,既然写死应该提供一个抽象类,里面有show、save等方法吧,但是这个抽象类也没有发现,不太理解当时jfinal设计的理念,用户应该怎么写、怎么继承哪个类才能简单实现?

lilei430381
lilei430381
回复 @JFinal : 好的,谢谢波总,我以为jfinal弄了这个模块上去,既然弄了,就应该做的不错了,所以尝试,那希望2.2版本以后对这一块进行升级改造!jfinal铁粉将会持续关注。。。。。谢谢波波大哥!
JFinal
JFinal
前面谈过了,不要拘泥于url,jfinal以前提供的Restful 拦截器只是为了让url风格变一变,用的时候优势比劣势要少,不建议使用
返回顶部
顶部