>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24713 个阅读者 刷新本主题
 * 贴子主题:  SpringBoot构建Restful接口 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2020-06-08 11:23:57     消息  查看  搜索  好友  邮件  复制  引用

Restful简介

Restful一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

     随着Restful风格的流行,现在更多的人叫HTTP接口为Restful接口。所以还是很有必要了解下Restful的一些基础约定的。

Rest架构的主要原则

网络上的所有事物都被抽象为资源,使用http方法表示具体操作,如下:

                点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

【快学springboot】2.Restful简介,SpringBoot构建Restful接口

     幂等的意思是说,多次相同的请求,数据是保持一致的。

restful实例参考

  • 非Restful之前的url风格
http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据

     http://127.0.0.1/user/save POST 新增用户

     http://127.0.0.1/user/update POST 修改用户信息

     http://127.0.0.1/user/delete GET/POST 删除用户信息
  • RESTful风格的url
http://127.0.0.1/user/1 GET 根据用户id查询用户数据

     http://127.0.0.1/user POST 新增用户

     http://127.0.0.1/user PUT 修改用户信息

     http://127.0.0.1/user DELETE 删除用户信息

SpringBoot构建Restful接口

基于上一节的项目。 这里先不考虑参数接受问题,将会在下一讲详细讲解
  1. 新建一个UserController
并且在类上使用@RestController注解。    

@RestController
@RequestMapping(value = "/api/v1/users")
public class UserController {

    }

  这就快速创建出了一个Controller,与SpringMVC不同的@Controller不同的是,这里使用了RestController注解,其效果等于Controller注解+ResponseBody注解的效果,即返回json格式的数据。

     RequestMapping注解表示这个类的前置url。
  • PostMapping对应增
@PostMapping
public Object addUser() {
// 新增一个用户
return "OK";
}

  这里PostMapping不写url,表示这个接口地址为这个Controller的前置地址
  • GetMapping对应查
@GetMapping(value = "/{userId}")
public Object getUser(@PathVariable(value = "userId") Integer userId) {
// 根据ID查找一个用户
return "User";
}

  • DeleteMapping对应删除
@DeleteMapping(value = "/{userId}")
public Object deleteUser(@PathVariable(value = "userId") Integer userId) {
// 根据id删除一个用户
return "OK";
}

  • PutMapping对应更新
@PutMapping
public Object updateUser() {
// 跟新
return "OK";
}

  这里提一下PatchMapping,Patch请求方法也是更新操作,如果要细致的与PutMapping区分,则是PatchMapping对应部分更新,PutMapping对应整体覆盖的更新。


----------------------------
原文链接:https://www.jianshu.com/p/bf858b83f7e1

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-06-15 09:39:19 重新编辑]
  Java面向对象编程-->继承
  JavaWeb开发-->使用Session(Ⅰ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->Java网络编程入门
  精通Spring-->Vue组件开发高级技术
  Vue3开发-->虚拟DOM和render()函数
  一篇文章让你彻底了解什么叫Netty!
  Spring MVC记录日志的三种方式
  使用Spring MVC处理404错误的方法
  Spring MVC和前后端分离的RESTFul框架
  SpringMVC Model、ModelMap和ModelAndView的区别和用法
  Redis的漏洞利用,原来大佬都是这样操作的
  阿里JAVA面试题剖析:Redis 和 memcached 有什么区别?
  微服务架构的基础框架选择:Spring Cloud还是Dubbo?
  Spring Cloud Config 客户端的高可用实现
  微服务架构的优点和缺点
  中央厨房订单管理系统,引入ActiveMQ消息队列,平滑处理高峰...
  spring源码阅读环境(几分钟下载包)
  一份Spring Boot核心知识清单
  Spring Framework 组件注册 之 @Import
  Spring如何实现AOP,请不要再说cglib了!
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。