浅谈REST风格

栏目: 编程工具 · 发布时间: 7年前

内容简介:现如今微服务如日中天,那么大家有没有想过各个微服务之间是怎么调用数据亦或是怎么交互的呢?当然方式有很多,但今天所说的REST风格被业界推荐为微服务之间交互的首选方式(小编还是非常喜欢这种方式的)。废话不多讲,下面就说说REST风格到底是个神马东东。--读《深入浅出 Sping Boot》有感REST(Representational State Transfer)又被唤作表现层状态转换。它涉及到三个重要名词:在做这个之前有必要清楚Http协议的7种常用动作:GET、POST、PUT、PATCH、DELETE

现如今微服务如日中天,那么大家有没有想过各个微服务之间是怎么调用数据亦或是怎么交互的呢?当然方式有很多,但今天所说的REST风格被业界推荐为微服务之间交互的首选方式(小编还是非常喜欢这种方式的)。废话不多讲,下面就说说REST风格到底是个神马东东。--读《深入浅出 Sping Boot》有感

REST简介

REST(Representational State Transfer)又被唤作表现层状态转换。它涉及到三个重要名词:

  • 资源
    所谓资源简单讲就是服务所能提供的数据,可以是实体数据也可是媒体类型,图片、PDF、文本等
  • 表现层
    何为变现层?简单说就是将数据以某种方式展现给用户,或者给客户返回一张图片等等动作称之为表现,通常是已JSON或XML形式展现数据
  • 状态转换
    状态转换就是对数据进行一系列的操作,因为资源本身并非一尘不变,随着需求的变化而变化。一个资源可能会随着需求的变化而经历一个资源创建、修改、查询、删除等过程,REST风格正是基于HTTP协议运行的,HTTP协议又被称为无状态协议,所以资源的变化需要在服务端完成。

REST风格之RUI设计

在做这个之前有必要清楚Http协议的7种常用动作:GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS

# 以id为编码 获取商品信息
GET  /goods/1
# 获取多个商品信息
GET  /goods/{goodName}/{note}
# 创建商品信息
POST  /goods/{goodName}/{price}/{note}
# 修改商品信息
PUT  /goods/{goodName}/{price}/{note}
# 修改商品部分
PATCH  /goods/{goodName}/{note}
# 删除某个商品信息
DELETE  /goods/2

REST风格端点

# 创建一个商品实体类
 public class goods{
    private Long id;
    private String goodsName;
    private Double price;
    private String note;
    
    public Long getId(){
        return id;
    }
    public void setId(Long id){
        this.id = id;
    }
    public String getGoodsName(){
        return goodsName;
    }
    public void setGoodsName(String goodsName){
        this.goodsName = goodsName;
    }
    public Double getPrice(){
        return price;
    }
    public void setPrice(Double price){
        this.price = price;
    }
    public String getNote(){
        return note;
    }
    public void setNote(String note){
       this.note = note;
    }
}
# 控制器
@Controller
public class GoodsController{
    /**
     *REST风格 获取商品的GET请求方式
     **/
     @GetMapping(value="/goods/{id}")
     @ResponseBody
    public Goods getGoods(@Pathvariable("id") Long id){
        Goods goods = goodsService.getGoods(id);
        return goods;
    } 
    /**
     *REST风格 PUT请求修改商品信息
     **/
     @GetMapping(value="/goods/{id}")
     @ResponseBody
    public Goods getGoods(@Pathvariable("id") Long id,@RequestBody Goods goods){
        Goods goods = goodsService.getGoods(id);
        goods.setId(id);
        goodsService.update(goods);
        return goods;
    } 
    /**
     *REST风格 使用HTTP的DELETE请求删除商品信息
     **/
     @GetMapping(value="/goods/{id}")
     @ResponseBody
    public String getGoods(@Pathvariable("id") Long id){
        int status = goodsService.deleteGoods(id);
        String result = "";
        if(status=0){
            result = "操作成功";
        }else{
            result = "操作失败";
        }
        return result;
    } 
}

以上是我对REST风格的简单认识,希望能给您提供些许帮助!谢谢支持!!2019-03-27 23:30:34 星期三


以上所述就是小编给大家介绍的《浅谈REST风格》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法

算法

Robert Sedgewick、Kevin Wayne / 人民邮电出版社 / 2012-3 / 99.00元

《算法(英文版•第4版)》作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了本书内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。 《算法(英文版•第4版)》适合......一起来看看 《算法》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具