IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Restlet框架解读-2

xiaog's blog 2011-07-18 12:27:35 累计浏览 3,526 次
本机暂存

    1)代码结构

     Restlet目前有三个分子版本,1.1.X,2.0.X,2.1.X,2.1.X是开发主干,有很多新的特性在添加和修改,本文主要解读2.0.X这个版本,同时会涉及到1.1.X的部分内容。

     下载完restlet代码后,可以看到如下的目录结构

     /+ org.restlet.* (restlet API)

     + org.restlet.engine.* (restlet的一个默认实现)

     + org.restlet.example.*

     + org.restlet.ext.*

     + org.restlet.test.*

    restlet是一款高度插件式的框架,ext包下面主要是restlet的扩展插件。

     org.restlet下面主要是restlet的核心API和默认实现的引擎。

     2)核心包结果

     restlet是构建http协议之上的,按照http://roy.gbiv.com/pubs/dissertation/rest_arch_style.htm实现,所以在restlet的API中很多类名都是完全按照论文所提到的概念来设计。

     核心API主要分为以下一个包:

  • Base package
  • Data package
  • Representation package
  • Resource package
  • Routing package
  • Security package
  • Service package
  • Util package
  •     详细的API说明可以查看http://wiki.restlet.org/docs_2.0/13-restlet/27-restlet.html

         目前对restlet框架的代码结构有了一个简单的认识后,我们来看看restlet到底做了哪些工作。

         restlet就是实现了HTTP协议下对一个URL资源的访问,所以restlet必然要实现HTTP协议,然后将请求路由到指定的处理类上,过程就这么简单,现在我们就来看看核心API,这里需要引入大师的文字:

         Uniform REST interface. “The central feature that distinguishes the REST

         * architectural style from other network-based styles is its emphasis on a

         * uniform interface between components. By applying the software engineering

         * principle of generality to the component interface, the overall system

         * architecture is simplified and the visibility of interactions is improved.

         * Implementations are decoupled from the services they provide, which

         * encourages independent evolvability.” Roy T. Fielding

        大概意思就是说明:REST架构区别与其他基于网络的软件架构最重要的特点就是REST强调组件之间接口统一。

         所以在restlet核心API中所有的类都继承org.restlet.Uniform这个接口。

         原图已失效

    同分类推荐文章

    1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
    2. Go 实验特性详解 (2026-06-21 10:05:27)
    3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

    查看更多 后端 文章 →

    建议继续学习

    1. SmartSprites - 命令行形式的CSS Sprites生成器 (累计阅读 123,896)
    2. Java开发岗位面试题归类汇总 (累计阅读 22,157)
    3. android 开发入门 (累计阅读 19,529)
    4. 我的PHP,Python和Ruby之路 (累计阅读 13,150)
    5. HashMap解决hash冲突的方法 (累计阅读 12,655)
    6. 知乎技术方案初探 (累计阅读 12,074)
    7. 到底什么是MVC? (累计阅读 11,869)
    8. 一个大二学生有关如何成为一名软件工程师的疑问及答复 (累计阅读 9,181)
    9. Java程序员应该知道的10个eclipse调试技巧 (累计阅读 8,014)
    10. 如何让员工忠于公司? (累计阅读 7,940)