• 简单的REST的框架实现


    源代码下载地址:http://download.csdn.net/source/1662193 

     

      一. 认识REST

             REST软件架构是由Roy Thomas Fielding博士在2000年首次提出的。他为我们描绘了开发基于互联网的网络软件的蓝图。REST软件架构是一个抽象的概念,是一种为了实现这一互联网的超媒体分布式系统的行动指南。利用不论什么的技术都能够实现这样的理念。而实现这一软件架构最著名的就是HTTP协议。通常我们把REST也写作为REST/HTTP,在实际中往往把REST理解为基于HTTPREST软件架构,或者更进一步把RESTHTTP看作为等同的概念。

         很多其它请阅读:

    http://www.infoq.com/cn/articles/rest-architecure

    http://www.kuqin.com/system-analysis/20080515/8518.html

       

           REST 的请求流程示意图

           

    REST请求

     

    个人总结:

    1.       REST架构仅仅是一种思想,并没有限定不论什么技术,不论什么语言。

    2.       REST的本质就是HTTP调用,用于减少各个应用之间的耦合度。

    3.       良好的REST 架构,应该有统一的表示方式和数据格式,可以有效的把各种资源组织起来,并可以进行有效的控制。

     

    二. 实现REST架构

     

    1.框架设计

    框架设计

     

    2.接口的定义

     

    IRestRequest : 用来表示 REST请求

    IRestResponse:用来表示 REST响应

    IRestInterceptor:用来表示REST拦截器

                     RestException: 用来表示REST异常

     

    3.实现的主要代码

     

        初始化代码,借助Servlet的init

     

        转发实现

     

     

        原型源代码下载:http://download.csdn.net/source/1662193

     

     

    三. 数据格式

     

     先看看曾经写的一篇文章: http://blog.csdn.net/maoxiang/archive/2008/06/25/2584282.aspx  《改善Form提交数据的 UI 交互设计 

     

      数据格式定义例如以下:

     

    JSON 格式:

    {

     code: 200|302|403|500 , 200表示正常,302表示跳转,403表示须要验证码,500异常

     messages:{  //传递的数据

     [key:value]

    }

    XML格式:

    <response>

      <code>200|302|403|500</code>

      <messages>

         <key></key>

         <value></value>

     </messages>

    </response>

     

    举例说明:

    {"code":200,"error":false,"messages":{"list":[{"name":"user0"},{"name":"user1"},{"name":"user2"},{"name":"user3"},{"name":"user4"}]},"ok":true,"redirect":false,"verify":false,"version":2}

     

    採用javascript 来解析JSON格式就相对简单非常多了:

     

     

     

    四. 实际应用

    1. 太平洋女性网搜店系统 http://shop.pclady.com.cn

    2. 太平洋女性网晒客系统 http://blog.pclady.com.cn

    3. 太平洋女性网化妆品库 http://cosme.pclady.com.cn

     .....

     

     

  • 相关阅读:
    教育是什么?
    关于CTime::Format在Unicode下的输出问题及解决办法
    COleDateTime在Unicode下,Format函数会有问题。
    UNICODE字符集
    处理字符串String类和正则表达式
    关于datatable linq的转换
    js
    HDU 3874 Necklace
    HDU 1520 Anniversary party
    HDU 4314 Save the dwarfs
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4533506.html
Copyright © 2020-2023  润新知