栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RESTful-URL设计规范

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RESTful-URL设计规范

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

目录

一、RESTful简介 :

二、RESTful规范:

三、RESTful-接口:


一、RESTful简介 : 

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

二、 RESTful规范:

        RESTful规范需要遵守三个规则,分别如下:

  1. 每个URL请求路径代表服务器上唯一的资源
  2. 使用不同的请求方式表示不同的操作
  3. 接口响应的资源表现形式采用json

(1)、 每个URL请求路径代表服务器上唯一的资源;如果进行删除,在传统的url设计中,使用到了相同的url路径(http://localhost:8080/goods/delete),所以不满足RESTful规范的第一个需要遵守的准则,而在RESTful设计中则每个URL请求路径代表服务器上唯一的资源(路径唯一)

传统的url设计:

        http://localhost:8080/goods/delete?goodId=1     商品1

        http://localhost:8080/goods/delete?goodId=2     商品2

RESTful设计:

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

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

 @ApiOperation(value = "商品删除功能")
    @RequestMapping(value = "/delete/{gid}",method = RequestMethod.DELETE)
    public ResultVo addGoods(@PathVariable("gid") int gid) {
        System.out.println(gid);
        return null;
    }

打开接口文档:http://localhost:8080/doc.html进行调试

 控制台查看结果:输出“1”,则请求成功~

 (2)、使用不同的请求方式表示不同的操作。springmvc对RESTful风格提供了很好的支持,在我们定义一个接口的url时,可以通过  @RequestMapping(value = "/delete/{gid}",method = RequestMethod.DELETE)指定请求方式。也可以使用特定的请求方式注解进行测定

请求方式
post添加
get查询
put修改
delete删除
option预检
package com.xgsm.Fmmall.controller;

import com.xgsm.Fmmall.vo.ResultVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@Api(value = "提供商品添加、修改、删除及查询的相关接口", tags = "商品管理")
@RequestMapping("/goods")
public class GoodsController {
    @ApiOperation(value = "商品添加功能")
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ResultVo addGoods() {
        return null;
    }

    @ApiOperation(value = "商品删除功能")
    @RequestMapping(value = "/delete/{gid}",method = RequestMethod.DELETE)
    public ResultVo addGoods(@PathVariable("gid") int gid) {
        System.out.println(gid);
        return null;
    }

    @ApiOperation(value = "商品修改功能")
    @RequestMapping(value = "/update",method = RequestMethod.PUT)
    public ResultVo updateGoods() {
        return null;
    }

    @ApiOperation(value = "商品查询功能")
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    public ResultVo getGoods() {
        return null;
    }
}

还可以这样写: j将@RequestMapping(value = "/add", method = RequestMethod.POST)写成@PostMapping(value = "/add")

package com.xgsm.Fmmall.controller;

import com.xgsm.Fmmall.vo.ResultVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@Api(value = "提供商品添加、修改、删除及查询的相关接口", tags = "商品管理")
@RequestMapping("/goods")
public class GoodsController {
    @ApiOperation(value = "商品添加功能")
    @PostMapping(value = "/add")
    public ResultVo addGoods() {
        return null;
    }

    @ApiOperation(value = "商品删除功能")
    @DeleteMapping(value = "/delete/{gid}")
    public ResultVo addGoods(@PathVariable("gid") int gid) {
        System.out.println(gid);
        return null;
    }

    @ApiOperation(value = "商品修改功能")
    @PutMapping(value = "/update")
    public ResultVo updateGoods() {
        return null;
    }

    @ApiOperation(value = "商品查询功能")
    @GetMapping(value = "/get")
    public ResultVo getGoods() {
        return null;
    }
}

(3)、接口响应的资源表现形式采用json,由于返回的数据需要是json格式,这时候我们会使用到@ResponseBody注解,但是由于我们所有需要返回的数据都是json格式,所以我们可以在类的前面使用@ResponseBody注解进行声明。

        但是在 RESTful风格中,提供了@RestController注解来替换@Controller、@ResponseBody

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号