restful get不传参数404_你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!

aa39782d5ef35eb2fbd30cd4011cd2e4.png

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

在 Restful 风格中,用户请求的 url 使用同一个 url 而用请求方式:get,post,delete,put...等方式对请求的处理方法进行区分,这样可以在前后台分离式的开发中使得前端开发人员不会对请求的资源地址产生混淆和大量的检查方法名的麻烦,形成一个统一的接口。

SpringMVC Restful 风格 url 配置实现的方式

SpringMVC 的 resturl 是通过 @RequestMapping 及 @PathVariable annotation 提供的,通过如 @RequestMapping(value="/blog /{id}",method=RequestMethod.DELETE) 即可处理 /blog/1 的 delete 请求。

  • GET(SELECT):从服务器查询,可以在服务器通过请求的参数区分查询的 方式。
  • POST(CREATE):在服务器端新建一个资源,调用 insert 操作。
  • PUT(UPDATE):在服务器端更新资源,调用 update 操作。
  • PATCH(UPDATE):在服务器端更新资源(客户端提供改变的属性)。(目前 jdk7 未实现,tomcat7 不支持)。
  • DELETE(DELETE):从服务器端删除资源,调用 delete 语句。

案例实操

Get 请求配置

/**
*restful-->get 请求 执行查询操作
* @param id
* @return
*/
@RequestMapping(value="queryAccountById02/{id}",method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById(@PathVariable Integer id){MessageModel messageModel=new MessageModel();if(null==id){messageModel.setCode(300);messageModel.setMsg("参数非法!");return messageModel;}messageModel.setResult(accountService.queryById(id));return messageModel; 
}

Post 请求配置

/**
* restful-->post 请求执行添加操作
* @param id
* @param aname
* @return
*/
@RequestMapping(value="saveAccount",method=RequestMethod.POST,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById04(@RequestBody Account account){MessageModel messageModel=new MessageModel();try {accountService.saveOrUpdateAccount(account);} catch (ParamsException e) { e.printStackTrace();messageModel.setCode(e.getErrorCode());messageModel.setMsg(e.getErrorMsg());}catch (Exception e) { e.printStackTrace();messageModel.setCode(300);messageModel.setMsg("操作失败!");}return messageModel; 
}

Put 请求配置

/**
* restful-->put 请求执行更新操作
* @param id
* @param account
* @return
*/
@RequestMapping(value="update/{id}",method=RequestMethod.PUT,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById04(@PathVariable Integer id,@RequestBody Account account){MessageModel messageModel=new MessageModel();try {accountService.saveOrUpdateAccount(account);} catch (ParamsException e) { e.printStackTrace();messageModel.setCode(e.getErrorCode());messageModel.setMsg(e.getErrorMsg());}catch (Exception e) { e.printStackTrace();messageModel.setCode(300);messageModel.setMsg("操作失败!");}return messageModel; 
}

Delete 请求配置

 /*** restful-->delete 请求 执行删除操作* @param id* @return*/
@RequestMapping(value="deleteAccountById/{id}",method=RequestMethod.DELETE,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById05(@PathVariable Integer id){MessageModel messageModel=new MessageModel();try {accountService.deleteAccountById(id);} catch (ParamsException e) { e.printStackTrace();messageModel.setCode(e.getErrorCode());messageModel.setMsg(e.getErrorMsg());}catch (Exception e) { e.printStackTrace();messageModel.setCode(300);messageModel.setMsg("操作失败!");}return messageModel;
}

扩展~REST

REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

bc30258047e96ad8b58b48a05e7771da.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET MVC中同步与异步

1.MvcHandler总是调用BeginProcessRequest/EndProcessRequest方法以异步的方式来处理请求2.Controller分别实现了IController和IAsyncController两个接口,所以当激活的Controller对象在MvcHandler的BeginProcessRequest方法中是按照这样的方式执行的:Con…

linux搭建spark集群,详解Spark+Zookeeper搭建高可用Spark集群

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎;现在形成一个高速发展应用广泛的生态系统。Spark三种分布式部署方式比较目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,详情参考。…

wifiwan口速率什么意思_无线路由器怎么设置wan口速率

wan口速率是设置无线路由器的wan口以什么速率方式工作,此设置不当会导致网速降低,下面是学习啦小编整理的无线路由器设置wan口速率的方法,供您参考。无线路由器设置wan口速率的方法在Wan口的设置中,当我们完成了基本的设置后&…

linux perl telnet安装,51CTO博客-专业IT技术博客创作平台-技术成就梦想

Telnet是一个古老而又不安全的协议,用来实现远程登录。这种服务可以和基于客户机/服务器进行通信,也就是说把你的电脑虚拟成一个键盘(伪终端)来和远程的服务进行通信,而服务器以为输入来自它本地的键盘,我们在本地所执行的命令会发…

hdu4473

这题的结果[f(1)f(2)...f(n)]其实就等价于x*y*z<n的解的个数&#xff0c;然后的方法几乎就是暴力枚举了。现场比赛的时候没想到这一点&#xff0c;太杯具了&#xff0c;浪费了两个小时的思考时间。其实我们的做法应该是可行的&#xff0c;因为f(n)具有积性性质&#xff0c;也…

https无法访问 宝塔_宝塔面板快速开启ssl(https)的方法

宝塔面板可以说在国内服务器配置方面是比较出名的&#xff0c;一些大的网站的服务器都是使用的宝塔面板&#xff0c;另外本博客作品的演示站点也是使用的宝塔面板。宝塔面板的操作与配置服务器环境对一些初入做站的将要跳坑的小白来说&#xff0c;就一件超越仙器的神器&#xf…

linux可以不用grub吗,既然不用Win了,那么GrubDOS也不用了。linux grub求指导

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼5、安装Grub到U盘上&#xff1a;[starlocalhost ~]$ sudo grub-install--root-directory/media/test/ /dev/sdbProbingdevices to guess BIOS drives. This may take a long time.Installationfinished. No error reported.This is…

raid 物理盘缓存状态_查看RAID状态

以下是组建服务器raid时查到的资料&#xff0c;做下笔记&#xff0c;没兴趣的朋友请无视。Linux下查看软、硬raid信息的方法。软件raid&#xff1a;只能通过Linux系统本身来查看cat /proc/mdstat可以看到raid级别&#xff0c;状态等信息。硬件raid&#xff1a; 最佳的办法是通过…

略读《大教堂与市集》

《大教堂与市集》&#xff08;The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary&#xff09;一书中提到了软工工程的两种开发模式&#xff0c;即大教堂模式和市集模式。作者认为“Given enough eyeballs, all bugs are shallow…

c语言time函数的作用,c语言中time函数的用法

c语言中time函数的用法的用法你知道吗&#xff1f;下面小编就跟你们详细介绍下c语言中time函数的用法的用法&#xff0c;希望对你们有用。c语言中time函数的用法的用法如下&#xff1a;头文件time.h函数名称: localtime函数原型: struct tm *localtime(const time_t *t…

测试nb信号的软件_NB-IOT的OTA测试(功率、灵敏度测试)

2017年7月25日新益技术实现了NB-IoT终端系统测试&#xff0c;在OTA暗室中完成了NB-IoT终端系统总辐射功率TRP(TotalRadiated Power)和总全向灵敏度TIS(Total Isotropic Sensitivity)测试。测试得到的360度全方位辐射和接收性能参数&#xff0c;为NB-IoT产品推向市场提供重要的参…

待研究

D3D中的Alpha颜色混合 &#xff08;http://www.cnblogs.com/flying_bat/archive/2007/09/20/900558.html&#xff09;转载于:https://www.cnblogs.com/chunyou128/archive/2012/11/14/2769334.html

linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法

关于workqueue&#xff0c;我们还是有很多话要说。想必大家对workqueue相关的函数(schedule_work 、queue_work、INIT_WORK、create_singlethread_workqueue 等)都不陌生。但说起差异&#xff0c;可能还有许多话需要坐下来慢慢讲。对于workqueue&#xff0c;与之最为相关的两个…

linux扩容根目录空间_Linux系统扩容根目录磁盘空间的操作方法

Linux系统扩容根目录磁盘空间的操作方法一、使用背景Linux根目录磁盘空间不够用了&#xff0c;当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘&#xff0c;但是发现系统里的大小还是没改变。产生的原因是没有给磁盘格式化&#xff0c;没有增加分区。二、操作方法1.查看磁…