<强>【前言】强>
面向资源的Restful风格的api接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎。
. net平台有WebAPi项目是专门用来实现Restful api的,其良好的系统封装,简洁优雅的代码实现,深受。net平台开发人员所青睐,在后台服务api接口中,已经逐步取代了辉煌一时MVC控制器,更准确地说,合适的项目使用更加合适的工具,开发效率将会更加高效。
python平台有龙卷风框架,也是原生支持了Restful api,在使用上有了很大的便利。
Java平台的SpringMVC主键在网络开发中取代了Struts2而占据了更加有力的地位,我们今天着重讲解如何在Java SpringMVC项目中实现Restful api。
<强>【实现思路】强>
Restful api的实现脱离不了路,由这里我们的Restful api路由由spring mvc的控制器来实现。
<强>【开发及部署环境】强>
开发环境:Windows 7×64英文版
2017.2 Intellij IDEA
部署环境:JDK 1.8.0
Tomcat 8.5.5
测试环境:chrome
,,,
提琴手<强>【实现过程】强>
1,搭建spring mvc maven项目
这里的搭建步骤不再赘述,如有需要参考:https://www.jb51.net/article/117670.htm
2,新建控制器StudentController
为了体现Restful api我们采用注解,RequestMapping (/api/学生)
具体的代码如下:
包控制器; 进口org.springframework.web.bind.annotation。*; @RestController @RequestMapping (“/api/学生”) 公开课StudentController { @RequestMapping(方法=RequestMethod.GET) 公共字符串Get () { 返回“{\“id \”, \“1 \”, \“\”, \“1111111111 \“}”; } @RequestMapping(方法=RequestMethod.POST) 公共字符串Post () { 返回“{\“id \”, \“2 \”, \“\”, \“2222222222 \“}”; } @RequestMapping(方法=RequestMethod.PUT) 公共字符串Put () { 返回“{\“id \”, \“3 \”, \“\”, \“3333333333 \“}”; } @RequestMapping(方法=RequestMethod.DELETE) 公共字符串中删除(){ 返回“{\“id \”, \“4 \”, \“\”, \“4444444444 \“}”; } @RequestMapping (value=" https://www.yisu.com/{id}”、方法=RequestMethod.GET) 公共字符串(@PathVariable (" id ")整数id) { 回报”{\“id \”, \“+身份证+“\”,\“\”,\“path变量id \“}”; } } >之前这里有Get、Post、Put、Delete分别对应查询,添加,修改,删除四种对资源的操作,即通常所说的CRUD。
spring mvc可实现restful的方式有@ controller和@RestController两种方式,两种方式的区别如下:
@ controller的方式实现如果要返回json、xml等文本,需要额外添加@ResponseBody注解,例如:
@ResponseBody//用于返回json数据或者文本格式文本 @RequestMapping (value=" https://www.yisu.com/TestJson ",方法=RequestMethod.GET) 公共字符串TestJson () { 返回“{\“id \”, \“1001 \”, \“\”, \“zhangsan \“}”; }@RestController方式不需要写@ResponseBody,但是不能返回模型绑定数据和jsp视图,只能返回json、xml文本,仅仅是为了更加方便返回json资源而已。
上述的其他方法中多写了个让方法:
@RequestMapping (value=" https://www.yisu.com/{id}”、方法=RequestMethod.GET) 公共字符串(@PathVariable (" id ")整数id) { 回报”{\“id \”, \“+身份证+“\”,\“\”,\“path变量id \“}”; }该方法可以直接在url拼接一个参数,更加方便对资源的定向访问,例如查一个学生列表可以默认空参数,而查询对应的某一个学生详情信息,可以id=studentId定向查询单条,使得我们对资源的访问更加快捷方便。
<强>【系统测试】强>
运行系统,使用提琴手调用restful api接口:
1.得到的方式
2.发布方式
SpringMVC Restful api接口实现的代码