现如今微服务如日中天,那么大家有没有想过各个微服务之间是怎么调用数据亦或是怎么交互的呢?当然方式有很多,但今天所说的REST风格被业界推荐为微服务之间交互的首选方式(小编还是非常喜欢这种方式的)。废话不多讲,下面就说说REST风格到底是个神马东东。–读《深入浅出 Sping Boot》有感
REST(Representational State Transfer)又被唤作表现层状态转换。它涉及到三个重要名词:
在做这个之前有必要清楚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
# 创建一个商品实体类
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 星期三