博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+SpringMVC+MyBatis+easyUI整合进阶篇(二)RESTful API实战笔记(接口设计及Java后端实现)...
阅读量:5996 次
发布时间:2019-06-20

本文共 4172 字,大约阅读时间需要 13 分钟。

写在前面的话

原计划这部分代码的更新也是上传到ssm-demo仓库中,因为如下原因并没有这么做:

  • 有些使用了该项目的朋友建议重新创建一个仓库,因为原来仓库中的项目太多,结构多少有些乱糟糟的。

  • 而且这次的代码改动较大,与原来的目录结构及代码风格相比都有很大的差别。

  • 同时也考虑到不同的人所处的学习阶段不同,担心有人不习惯也不适应这种风格及后面的更新,有的朋友甚至可能是初学者,更适合学习ssm-demo这个基础项目。

基于以上几点,最终并没有选择把几个项目都放在一个代码仓库中,而是另外花了些时间改动并且重新创建了一个仓库,另起炉灶,项目也在新的服务器和域名下部署。

perfect-ssm

接口设计

项目共有三个模块:

  • 文章管理模块
  • 图片管理模块
  • 用户管理模块

针对以上三个模块,并结合前文中所总结的RESTful API设计原则,对api进行改造,目标接口如下:

图片上传:原接口 []      http://ssm-demo.13blog.site/loadimage/upload.do现接口 [POST]  http://perfect-ssm.13blog.site/images文章添加:原接口 []      http://ssm-demo.13blog.site/article/save.do现接口 [POST]  http://perfect-ssm.13blog.site/articles 文章修改:原接口 []      http://ssm-demo.13blog.site/article/save.do现接口 [PUT]  http://perfect-ssm.13blog.site/articles 文章列表:原接口 []      http://ssm-demo.13blog.site/article/list.do现接口 [GET]   http://perfect-ssm.13blog.site/articles文章删除:原接口 []      http://ssm-demo.13blog.site/article/delete.do现接口 [DELETE]http://perfect-ssm.13blog.site/articles图片添加:原接口 []      http://ssm-demo.13blog.site/picture/save.do现接口 [POST]  http://perfect-ssm.13blog.site/pictures图片修改:原接口 []      http://ssm-demo.13blog.site/picture/save.do现接口 [PUT]  http://perfect-ssm.13blog.site/pictures图片列表:原接口 []      http://ssm-demo.13blog.site/picture/list.do现接口 [GET]   http://perfect-ssm.13blog.site/pictures图片删除:原接口 []      http://ssm-demo.13blog.site/picture/delete.do现接口 [DELETE]http://perfect-ssm.13blog.site/pictures用户登录:原接口 []      http://ssm-demo.13blog.site/user/login.do现接口 [POST]  http://perfect-ssm.13blog.site/users/cookie 用户列表:原接口 []      http://ssm-demo.13blog.site/user/list.do现接口 [GET]   http://perfect-ssm.13blog.site/users 用户删除:原接口 []      http://ssm-demo.13blog.site/user/delete.do现接口 [DELETE]http://perfect-ssm.13blog.site/users用户添加:原接口 []      http://ssm-demo.13blog.site/user/save.do现接口 [POST]  http://perfect-ssm.13blog.site/users修改密码:原接口 []      http://ssm-demo.13blog.site/user/modifyPassword.do现接口 [PUT]   http://perfect-ssm.13blog.site/users

根据不同资源映射成不同的uri,对于资源的具体操作类型,由HTTP动词来表示。

java后端实现

前文中提到了一些设计原则,这一篇就是将这些原则运用到项目中,但是理论性的知识看看就忘了,我写博客的目的不是为了写理论概念,没有实际项目配合我是不会写的,我觉得通过代码实现出来,配合实战才能让理论知识吸收的更好。

由于是ssm项目,因此主要是通过SpringMVC实现,更多的是使用了SpringMVC的注解来进行简化开发。

整合过程:

  • 首先是修改web.xml配置文件,使得URI可以符合RESTful风格。
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-context-mvc.xml
1
springMVC
/
  • 修改spring-context-mvc.xml配置文件,配置json消息转换器及动态资源过滤。
application/json; charset=UTF-8
  • @RequestMapping注解,规范和限制Http请求的请求方法。
@RequestMapping(value = "", method = RequestMethod.PUT)@RequestMapping(value = "/{ids}", method = RequestMethod.DELETE)
  • @ResponseBody注解,将返回结果转换为JSON格式。

  • 增加common包,其中的工具类规定了返回状态码及返回数据的基本格式。

    common

public class Constants {    public static final int RESULT_CODE_SUCCESS = 200;  // 成功处理请求    public static final int RESULT_CODE_BAD_REQUEST = 412;  // bad request    public static final int RESULT_CODE_SERVER_ERROR = 500;  // 没有对应结果}public class Result
implements Serializable { private static final long serialVersionUID = 1L; private int resultCode; private String message; private T data; public Result() { }}

注意事项

几个需要注意的注解:

  • @RequestMapping
  • @PathVariable
  • @ResponseBody
  • @RequestParam

代码中大量的出现,本文中也一再强调,因此,给正在看本篇文章的你一个建议就是如果你不熟悉这几个注解,花点时间去认真学习和实践一下,知道这几个注解的用法和注意事项,网上针对这些注解的文章有很多,可以针对性的学习一下,这篇文章就不再占用篇幅去赘述了,需要代码的话,直接去我的GitHub仓库中去下载就好。

结语

推荐一下自己的达人课,感兴趣的朋友可以看一下:

gitchat

首发于我的,新的项目演示地址:,用户名:admin,密码:123456。

859549-20170808114423174-1554399166.png
如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友,本篇主要讲述了后端的实现,关于前端的修改会在下一篇文章中讲述。

如果你想继续了解该项目可以查看整个系列文章,也可以到我的或者中查看源码及项目文档。

转载地址:http://jdqlx.baihongyu.com/

你可能感兴趣的文章
多任务-进程之Queue的进程间通信
查看>>
Codeforces Round499-div2
查看>>
超实用的JavaScript技巧及最佳实践(下)
查看>>
图片方向 image orientation Exif
查看>>
复制单级目录
查看>>
用matplotlib库画图
查看>>
UVA 113 Power of Cryptography (数学)
查看>>
柳传志誓师大会演讲:建班子 定好战略 带好队伍
查看>>
金交所解除“警报” 调整白银停板和保证金
查看>>
2006'春装--挡不住白色(组图)
查看>>
生产者消费者模式-Java实现
查看>>
668. Kth Smallest Number in Multiplication Table
查看>>
Python 词频统计
查看>>
构建之法阅读笔记4
查看>>
前端标注软件-pxcook像素大厨使用心得
查看>>
在mysql中RIGHT JOIN与group by一起使用引起的一个大bug
查看>>
cxf的wsdl2java命令和JDK的wsimport命令的区别和使用(转载)
查看>>
ios-AppDelegate常用的方法
查看>>
ios-UISlider-常用方法和定时器NSTimer的使用
查看>>
MySQL类型属性Unsigned与ZeroFill
查看>>