文章目录

  • RESTful 接口设计
    • 1.获取所有员工列表
    • 2.增加一个员工
    • 3.更新员工
    • 4.删除员工
    • 5.查询单个员工

RESTful 接口设计

1.获取所有员工列表

/*** 获取所有员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--无* 4. 请求响应--多个员工--List<Employee>--json*/
@RequestMapping(value = "/employees", method = RequestMethod.GET)
@ResponseBody
public List<Employee> list(){//查询MySQL数据库得到员工列表信息//假装查询数据库List<Employee> list = Arrays.asList(new Employee(1L, "大王", 18),new Employee(2L, "小李", 19),new Employee(3L, "小查", 20));return list;
}

2.增加一个员工

/*** 增加一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--POST* 3. 请求参数--Employee* 4. 请求响应--Employee--json*/
@RequestMapping(value = "/employees", method = RequestMethod.POST)
@ResponseBody
public Employee add(Employee employee){//假设添加员工employee.setId(1L);return employee;
}

3.更新员工

/*** 更新一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--PUT* 3. 请求参数--id,name,age* 4. 请求响应--Employee--json*/
@RequestMapping(value = "/employees", method = RequestMethod.PUT)
@ResponseBody
public Employee update(Employee employee){//假设添加员工employee.setName(employee.getName() + "_update");return employee;
}

4.删除员工

添加一个统一的接口响应对象
在域名反写的包下,新建一个Java文件util.JsonResult

package org.chad.util;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;//统一的接口响应对象
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class JsonResult {private int code;  //请求状态码 成功200 操作失败500 没有登录403private String msg; //请求操作之后的返回信息private Object data; //请求的响应数据public static JsonResult error(String msg){return new JsonResult(500, msg, null);}public static JsonResult error(String msg, Object data){return new JsonResult(500, msg, data);}public static JsonResult success(){return new JsonResult(200, "操作成功", null);}public static JsonResult success(Object data){return new JsonResult(200, "操作成功", data);}
}

编写删除员工的代码

/*** 删除一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--DELETE* 3. 请求参数--id* 4. 请求响应--删除之后的状态--jsonResult--json** jsonResult:统一的响应返回值** {*     code:200,*     msg:"操作成功”,*     data:null* }*/
@RequestMapping(value = "/employees", method = RequestMethod.DELETE)
@ResponseBody
public JsonResult delete(Long id){return JsonResult.success();
}

postman显示

5.查询单个员工

/*** 获取某一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id* 4. 请求响应--一个员工--Employee--json*/
@RequestMapping(value = "/employees", method = RequestMethod.GET)
@ResponseBody
public Employee oneList( Long id){return new Employee(id, "张三", 18);
}

我们会发现运行不起来

查询所有员工接口:/ employees GET
查询单个员工接口: /employees GET
上面2个接口映射路径与请求方法完全相同,Spring MVC认为是同一个接口,下能同时存在,此时怎么办?
方案1:使用多级路経方式比如:/ employees / detail
方案2:使用参数路怪方式比如:/ employees /{ id }将请求参数作为路径一部分,进打 url 区分。
参数路径:/ employees /( id } 其中{ id }参数占位符
客户端访问 http://Localhost:80/employees/1 1就是 id 参数值
注意点:
接口要获取参数路経中参数必须使用注 @PathVariable ,目的是让 springmvc 参数解析器从路径中解析出参数并进行赋值。如果参数路怪中的占位符名称与请求映射方法形式参数名称不一致时,必须明确的指定映射
“/ employees /( eid }”—>@ PathVariable (" eid ") Long id

改变后

/*** 获取某一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id* 4. 请求响应--一个员工--Employee--json*/
@RequestMapping(value = "/employees/{id}", method = RequestMethod.GET)
@ResponseBody
public Employee oneList(@PathVariable Long id){return new Employee(id, "张三", 18);
}

至此可以正常查询

RESTful 接口设计相关推荐

  1. RestFul接口设计

    一.接口编程 1.背景 随着互联网的发展,尤其是移动互联网为代表的Web3.0时代,客户端层出不穷,以APP.微信.PC浏览器为代表,服务端业务逻辑基本一致的,那么有没有一种方式可以做到"服 ...

  2. feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范

    最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下. SpringMVC的请求参数绑定机制 了解Feig ...

  3. 【RESTful风格】软件接口设计中RESTful风格

    REST = Representational State Transfer 表述性状态转移,是一种软甲接口设计风格.总之就是一种风格 REST基于:HTTP.HTML.JSON.XML.URI 这些 ...

  4. API接口设计之RESTful软件架构风格

    说到API接口设计有的喜欢用Web Service,有的喜欢用WCF,当然也有还在用最原始的ashx,aspx页面的.无论采用什么方式能很好的满足业务需求就ok,但是不同的方式在扩展性.易用性,可维护 ...

  5. [API接口设计] RESTful 规范

    RESTful是目前最流行的API设计规范,它是用于Web数据接口的设计:REST它是 Representational State Transfer的简称,中文的含义是: "表征状态转移& ...

  6. restful 接口 安全性设计

    2019独角兽企业重金招聘Python工程师标准>>> 1.MD5混淆 第三方调用restful接口时,参数如商品名称.商品ID.金额.MD5加密(商品名称+商品ID+金额+sign ...

  7. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

  8. 接口是什么意思_程序员天天用却不懂得冷知识,这两句口诀,让你理解RESTful接口...

    在我们前后端交互过程中,我们经常提到一个英文单词RESTful,那么什么是RESTful接口呢? REST,全称Resource Representational State Transfer,翻译成 ...

  9. 我是如何根据豆瓣api来理解Restful API设计的

    1.什么是REST REST全称是Representational State Transfer,表述状态转移的意思.它是在Roy Fielding博士论文首次提出.REST本身没有创造新的技术.组件 ...

最新文章

  1. C++ 虚函数表解析
  2. CAN协议,系统结构和帧结构
  3. 从零开始学android开发-IDE空间不够报错
  4. 向 Fiddler 告别,拥抱 Fastest 吧!
  5. e家modem共享上网方法
  6. 在im4java中使用GraphicsMagick
  7. 我国计算机系统安全保护等级的划分,信息安全技术题库:我国制定了强制性国家标准《计算机信息系统安全保护等级划分准则》,其中属于第二级的是()。...
  8. SQL中的where语句的用法及实例——条件查询
  9. fedora mysql添加密码_Fedora14下 mysql更改密码
  10. SVN忽略设置的方法
  11. eliminate什么意思_eliminate是什么意思_eliminate在线翻译_英语_读音_用法_例句_海词词典...
  12. python篇 006-- pycharm vsc 编写python(对比浅析混合使用) pycharm篇
  13. MySQL基础 - 简单查询
  14. Socket通讯连接常见错误代码
  15. python如何从键盘输入数据_python如何从键盘输入数据?
  16. 软件工程——什么是软件
  17. Kali Linux渗透测试 073 扫描工具-Vega
  18. 搭建pixhawk飞控无人小车--前期准备
  19. 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分
  20. 开启创客教育课程建设的实体空间

热门文章

  1. 关于CMTS设备的一些备忘
  2. Ajax 简单的实例代码
  3. 局域网连接: 手机网络调试助手连接不上电脑网络调试助手
  4. 监理工程师岁月--甲乙丙方的斗智斗勇
  5. Adobe Flash player 错误代码16解决方法
  6. CyberLink PowerDVD 9 简体中文版+注册码下载
  7. html 游戏 背景音乐,页游广告背景音乐大全_最新页游广告背景BGM音乐大全_快吧游戏...
  8. 算法工程师面试题八之交叉验证
  9. 【好书推荐】读大学,究竟读什么
  10. JAVA泡泡堂网络游戏的设计与实现免费源代码+LW