zoukankan      html  css  js  c++  java
  • 简单的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

     .....

     

     

  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4307649.html
Copyright © 2011-2022 走看看