zoukankan      html  css  js  c++  java
  • SprimgMVC学习笔记(九)—— RESTful支持

    一、什么是restful?

      Restful就是一个资源定位及资源操作的风格,其核心是面向资源。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。REST提出设计概念和准则为:

        1. 网络上的所有事物都可以被抽象为资源(resource)
        2. 每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
        3. 所有的操作都是无状态的

      REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建(Create),获取(Retrieve),更新(Update)和删除(Delete)就可以完成相关的操作和处理。我们可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。其支持的四种核心操作分别为:

    • GET – 获取信息/请求信息内容。绝大多数浏览器获取信息时使用该方式。
    • POST – 添加信息内容。显示曾经的信息内容,能够看作是insert操作
    • PUT – 更新信息内容。相当与update
    • DELETE – 删除信息内容能够看作是delete

      传统方式操作资源:

      • http://127.0.0.1/item/queryItem.action?id=1      查询,GET

      • http://127.0.0.1/item/saveItem.action                 新增,POST

      • http://127.0.0.1/item/updateItem.action             更新,POST

      • http://127.0.0.1/item/deleteItem.action?id=1      删除,GET或POST

      使用RESTful操作资源:

      • http://127.0.0.1/item/1          查询,GET

      • http://127.0.0.1/item              新增,POST

      • http://127.0.0.1/item              更新,PUT

      • http://127.0.0.1/item/1          删除,DELETE

    二、RESTful入门案例

    2.1 需求

      使用RESTful方式实现商品信息查询,返回json数据

    2.2 从URL上获取参数

      使用RESTful风格开发的接口,根据id查询商品,接口地址是:http://127.0.0.1/item/1

      我们需要从url上获取商品id,步骤如下:

    1. 使用注解@RequestMapping("item/{id}")声明请求的url

      {xxx}叫做占位符,请求的URL可以是“item/1”或“item/2” 
    2. 使用(@PathVariable() Integer id)获取url上的数据
      /**
       * 使用RESTful风格开发接口,实现根据id查询商品
       * 
       * @param id
       * @return
       */
      @RequestMapping("item/{id}")
      @ResponseBody
      public Item queryItemById(@PathVariable() Integer id) {
          Item item = this.itemService.queryItemById(id);
          return item;
      }

      如果@RequestMapping中表示为"item/{id}",id和形参名称一致,@PathVariable不用指定名称。如果不一致,例如"item/{ItemId}"则需要指定名称@PathVariable("itemId")。

      注意两个区别

    •  @PathVariable是获取url上数据的。@RequestParam获取请求参数的(包括post表单提交)

    •  如果加上@ResponseBody注解,就不会走视图解析器,不会返回页面,而是返回json数据。如果不加,就走视图解析器,返回页面

  • 相关阅读:
    微信JS SDK Demo
    微信JS SDK使用权限签名算法
    微信JS接口
    微信分享JS接口失效说明及解决方案
    微信支付开发(2) 扫码支付模式一
    不懂技术的人不要对懂技术的人说这很容易实现
    独立开发者经验分享
    微信公开课PRO版张小龙演讲全文
    RC4加密算法的原理及实现
    上传APP加入视频预览--精简点名
  • 原文地址:https://www.cnblogs.com/yft-javaNotes/p/10216539.html
Copyright © 2011-2022 走看看