在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径相关的知识,希望对你有一定的参考价值。

可以参照Rails中的标准的定义方式。
如果定义这个资源的两个参数具有从属关系,那么生成的路由就是

owner/1/property/1

其中property从属于owner。

比如用户1的编号为2的文章,就是users/1/articles/2

如果两个资源是平等的,那么一般是作为路由中HTTP方法的参数,

比如你提到的“要表示x轴为2,y轴为3的点”,就一般是用xxx.com/dot?x=2&y=3
参考技术A 可以参照Rails中的标准的定义方式。
如果定义这个资源的两个参数具有从属关系,那么生成的路由就是
owner/1/property/1
其中property从属于owner。
比如用户1的编号为2的文章,就是users/1/articles/2
如果两个资源是平等的,那么一般是作为路由中HTTP方法的参数,
比如你提到的“要表示x轴为2,y轴为3的点”,就一般是用xxx.com/dot?x=2&y=3本回答被提问者和网友采纳

☀️☀️☀️换一个SpringMVC编写风格吧!快来看看 RESTFUL编写风格~

RESTFUL定义

Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,是对http协议的诠释。

  • 资源定位:每一个URL都是一个资源。要求url中没有动词,只有名词。没有参数

  • Url格式:http://blog.csdn.net/beat_the_world/article/details/45621673

  • 资源操作:通过HTTP请求方式确定不同的操作。

  • get查询资源、post新建资源(也可以修改资源)、put更新资源、delete删除资源。

  • 一般使用时还是post和get。
    @RequestMapping(value="/viewItems/{id}" , method=RequestMethod.GET)

  • 对HTTP协议诠释(落地方案),请求方式的落地

http协议共7种,常见4种,最长使用2种
get
post
put
delete

RESTFul对服务器程序操作,进行约定。

  • 每一个操作组成:请求路径 + 请求方式 。 (一个路径,因为请求方式的不同,可以完成不同操作)
  • 数据传输方式:JSON数据

// 传统开发路径
查询:http://localhost:8080/user/selectAll.action
添加:http://localhost:8080/user/addUser.action
修改:http://localhost:8080/user/updateUser.action
删除:http://localhost:8080/user/deleteUser.action

// RESTFul风格路径
查询:get http://localhost:8080/user/
详情:get http://localhost:8080/user/123
添加:post http://localhost:8080/user/
修改:put http://localhost:8080/user/
删除:delete http://localhost:8080/user/123

2、RESTFUL 使用

2.1 步骤

  • 步骤1:创建新项目 (day15_mvc_restful)

  • 步骤2:导入jar包:spring 、spring mvc、jackson、mybatis

  • 步骤3:配置类,

    • spring mvc 配置
    • 启动配置类,前端控制器没有扩展名,由 *.action 改成 /
  • 步骤4:编写controller,完成增删改查

    • 4.1 类级别:

@Controller 、@ResponseBody
//–> 合成注入
@RestController

  • 4.2 方法级别:@RequestMapping(value=“路径”, method=RequestMethod.GET /POST/PUT/DELETE)

//传统写法
@RequestMapping(value=“路径”, method=RequestMethod.GET /POST/PUT/DELETE)

//–>各种请求方式的简化写法
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PathVariable //用于获得路径参数

  • 4.3 方法返回值

//根据约束,基于RESTFul风格,方法的的返回值,建议使用 ResponseEntity 类型
// ResponseEntity 用于封装返回值信息,含状态码
// 返回200状态码,ResponseEntity.ok(“添加成功”);
// 其他状态码,new ResponseEntity<>(“添加成功”, HttpStatus.UNAUTHORIZED)

3 、实现

配置类

控制器

@RestController
@RequestMapping("/user")
public class UserController {
/**
* 查询所有
* @return
/
//等效 @RequestMapping(method = RequestMethod.GET)
@GetMapping
public ResponseEntity<List> list() {
List list = new ArrayList<>();
list.add(new User(1,“jack”,“1234”, new Date()));
list.add(new User(2,“肉丝”,“6666”, new Date()));
list.add(new User(3,“tom”,“loverose”, new Date()));
return ResponseEntity.ok(list);
}
/
*
* 添加用户
* @param user
* @return
/
@PostMapping(produces = “application/json;charset=UTF-8”)
public ResponseEntity add(@RequestBody User user) {
System.out.println(user);
return ResponseEntity.ok(“添加成功”);
}
/
*
*
* @param user
* @return
/
@PutMapping
public ResponseEntity update(@RequestBody User user) {
System.out.println(user);
return ResponseEntity.ok(“update success”);
}
/
*
* 删除
* @param userId
* @return
*/
@DeleteMapping("/{id}")
public ResponseEntity delete(@PathVariable(“id”) String userId ) {
System.out.println(userId);
return ResponseEntity.ok(“delete success”);
}
}

以上是关于在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径的主要内容,如果未能解决你的问题,请参考以下文章

5SpringMVC:Controller 详解 及 RestFul风格

5SpringMVC:Controller 详解 及 RestFul风格

☀️☀️☀️换一个SpringMVC编写风格吧!快来看看 RESTFUL编写风格~

Restful风格接口定义

RESTful风格以及统一响应结果

如何设计一个restful风格的API