千峰商城-springboot项目搭建-09-RESTfulURL设计规范

 RESTful:

前后端分离开发的项目中,前后端之间是接口进行请求和响应,后端向前端提供请求时就要对外暴露一个URL;URL的设计不能是随意的,需要遵从一定的设计规范——RESTful。

RESTful是一种web api的标准,也就是一种url设计风格/规范。

1.每个URL请求路径代表服务器上的唯一资源。

//传统的URL设计:
http://localhost:8080/goods/delete?goodsId=1      //商品1
http://localhost:8080/goods/delete?goodsId=2      //商品2

//RESTful设计:
http://localhost:8080/goods/delete/1       //商品1
http://localhost:8080/goods/delete/2       //商品2

修改GoodsController.java:

@Controller
@RequestMapping("/goods")
@Api(value = "提供商品添加,修改,删除及查询的相关接口",tags = "商品管理")
public class GoodsController {

    @RequestMapping(value = "/add",method = RequestMethod.POST)
    public ResultVO addGoods(){
        return null;
    }

   // @ApiIgnore
    @RequestMapping(value = "/delete/{gid}")
    public ResultVO deleteGoods(@PathVariable("gid") int goodsId){
        System.out.println("---------------" + goodsId);
        return new ResultVO(10000,"delete success",null);
    }

    @RequestMapping(value = "/update",method = RequestMethod.PUT)
    public ResultVO updateGoods(){
        return null;
    }


    @RequestMapping(value = "/list",method = RequestMethod.GET)
    public ResultVO listGoods(){
        return null;
    }
}

查看swagger文档:

 进行删除测试:

http://localhost:8080/goods/delete/1

http://localhost:8080/goods/delete/2

控制台:

 删除成功!

2.使用不同的请求方式表示不同的操作
springmvc对RESTful风格提供了很好的支持。在我们定义一个接口的URL时,可以通过两种方式:“RequestMapping(value="/{id}",method=RequestMethod.GET)”方式指定请求方式;也可以使用特定请求方式的注解设定URL:“@PostMapping("/add")”,“@DeleteMapping("/{id}")”,“@PutMapping("/{id}")”,“@GetMapping("/{id}")”
post 添加
get   查询
put   修改
delete  删除
option  (预检)
根据ID删除一个商品:【delete】
  @RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
    public ResultVO deleteGoods(@PathVariable("id") int goodsId){
        System.out.println("---------------" + goodsId);
        return new ResultVO(10000,"delete success",null);
    }

 根据ID查询一个商品:【get】

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public ResultVO getGoods(@PathVariable("id") int goosId){
        return null;
    }
3.接口响应的资源的表现形式采用JSON(或者XML)
在控制器类  或者  每个接口方法添加“@ResponseBody”注解,将返回的对象格式化为JSON。
或者直接在控制器类使用@RestController注解声明控制器。
GoodsController.java:
@RestController
//@Controller
//@ResponseBody
@RequestMapping("/goods")
@Api(value = "提供商品添加,修改,删除及查询的相关接口",tags = "商品管理")
public class GoodsController {

    @PostMapping("/add")
    public ResultVO addGoods(){
        return null;
    }

   // @ApiIgnore
    @DeleteMapping("/{id}")
    //@ResponseBody
    public ResultVO deleteGoods(@PathVariable("id") int goodsId){
        System.out.println("---------------" + goodsId);
        return new ResultVO(10000,"delete success",null);
    }

    @PutMapping("/{id}")
    //@ResponseBody
    public ResultVO updateGoods(){
        return null;
    }

    @GetMapping(value = "/list")
    //@ResponseBody
    public ResultVO listGoods(){
        return null;
    }

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    //@ResponseBody
    public ResultVO getGoods(@PathVariable("id") int goosId){
        return null;
    }
}
4.前端(Android、ios、pc)通过无状态的HTTP协议与后端接口进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值