RESTful API实践

  • RESTful介绍

RESTful相关介绍请参考:

https://www.runoob.com/w3cnote/restful-architecture.html

RESTfulAPI标准接口文档请参考:

https://developer.openstack.org/api-ref/application-catalog/v1/index.html

  • 示例代码

代码总体结构基于Spring4.3.10版本,代码配置基于XML和注解配置(相比传统此示例代码大多数配置通过注解完成),支持配置分离,集成spring data redis(项目中常用,建议对Redis的操作通过RedisTemplate完成,代码中附有操作示例,如无法满足需求另外写代码)。

Spring data Redis介绍:

官方文档:

https://docs.spring.io/spring-data/redis/docs/2.0.9.RELEASE/reference/html/

参考文档:

https://blog.csdn.net/niugang0920/article/details/81530492

 

题外如项目需要还可以引入spring-data-jpa,spring-data-elasticsearch

 

对MyBatis操作也基于了一定的封装。引入大量最新支持的注解简化代码开发。Banner打印,去掉web 层Try Catch异常捕获,统一交@ControllerAdvice处理。你将看到与以往不同的Response Code.

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

400 - Bad Request

无效请求内容,参数错误

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

操作示例

1.创建用户

POST     http://localhost:8084/mis-xdja/restful/user

创建用户:

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

400 - Bad Request

无效请求内容,参数错误

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

Request Parameters

参数名

所在域

类型

描述

account

Body

String

账号

name

Body

String

姓名

phone

Body

String

电话

email

Body

String

邮箱

Request Example

{

       "account":"110113",

       "name":"李龙",

       "phone":"13060401016",

       "email":"863263957@qq.com"

}

 

Response Parameters

参数名

所在域

类型

描述

id

Body

Integer

账号

account

Body

String

姓名

sex

Body

String

电话

phone

Body

String

邮箱

quanPin

Body

String

全拼

jianPin

Body

String

简拼

ip

Body

String

Ip地址

deptId

Body

Integer

部门id

roleId

Body

Integer

角色id

idCard

Body

String

身份证

fileUrl

Body

String

头像URL

password

Body

String

密码

deleteFlag

Body

String

删除标识

createTime

Body

String

创建时间

creator

Body

String

创建者

updateTime

Body

String

更新时间

updator

Body

String

更新者

version

Body

String

版本

Response Example

{

  "id": 34,

  "account": "110113",

  "name": "李龙",

  "sex": null,

  "phone": "13060401016",

  "email": "863263957@qq.com",

  "quanPin": "lilong",

  "jianPin": "ll",

  "ip": null,

  "deptId": null,

  "roleId": null,

  "idCard": null,

  "fileUrl": null,

  "password": "e10adc3949ba59abbe56e057f20f883e",

  "deleteFlag": "1",

  "createTime": 1535111701000,

  "creator": null,

  "updateTime": null,

  "updator": null,

  "version": 180824195501

}

2.用户列表

查询用户列表,支持动态参数和分页

GET    http://localhost:8084/mis-xdja/restful/user

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

Request Parameters

请求参数只有只要实体中定义了属性字段都可以当为请求参数,为了节约篇幅只列举部分参数

解释:

query(查询)

可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

参数名

所在域

类型

描述

account

query

String

账号

name

query

String

姓名

phone

query

String

电话

email

query

String

邮箱

….

Request Example

Response Parameters

相应参数如:1.创建用户

Response Example

 

{

  "data": [

    {          

      "id": 34,

      "account": "110113",

      "name": "李龙",

      "sex": null,

      "phone": "13060401016",

      "email": "863263957@qq.com",

      "quanPin": "lilong",

      "jianPin": "ll",

      "ip": null,

      "deptId": null,

      "roleId": null,

      "idCard": null,

      "fileUrl": null,

      "password": "e10adc3949ba59abbe56e057f20f883e",

      "deleteFlag": "1",

      "createTime": 1535111701000,

      "creator": null,

      "updateTime": null,

      "updator": null,

      "version": 180824195501

    },

{

      "id": 4,

      "account": "110111",

      "name": "石磊",

      "sex": null,

      "phone": "13060401016",

      "email": "863263957@qq.com",

      "quanPin": "shilei",

      "jianPin": "sl",

      "ip": null,

      "deptId": null,

      "roleId": null,

      "idCard": null,

      "fileUrl": null,

      "password": "e10adc3949ba59abbe56e057f20f883e",

      "deleteFlag": "1",

      "createTime": 1535107901000,

      "creator": null,

      "updateTime": null,

      "updator": null,

      "version": 180824185139

    }

  ],

  "total": 4

}

3.修改用户

修改用户信息

PUT    http://localhost:8084/mis-xdja/restful/user

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

400 - Bad Request

无效请求内容,参数错误

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

 

Request Parameters

参数名

所在域

类型

描述

id

Body

Integer

用户id

account

Body

String

账号

name

Body

String

姓名

phone

Body

String

电话

email

Body

String

邮箱

对于以上put请求如id为空,后台会返回400状态码。这是客户端就知道请求参数头问题。

如需要具体的业务状态码在额外定义,如下。

 

Request Example

{

       "id":34,

       "account":"110113",

       "name":"牛刚刚",

       "phone":"15094031789",

       "email":"1235656@qq.com"

}

4.用户详情

查询用户列表,支持动态参数和分页

GET    http://localhost:8084/mis-xdja/restful/user/{id}

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

400 - Bad Request

无效请求内容,参数错误

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

Request Parameters

请求参数只有只要实体中定义了属性字段都可以当为请求参数,为了节约篇幅只列举部分参数

解释:

path(路径)

由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

参数名

所在域

类型

描述

id

path

Integer

用户id

Request Example

http://localhost:8084/mis-xdja/restful/user/34

Response Parameters

相应参数如:1.创建用户

Response Example

{

  "id": 34,

  "account": "110113",

  "name": "牛刚刚",

  "sex": null,

  "phone": "15094031789",

  "email": "1235656@qq.com",

  "quanPin": "lilong",

  "jianPin": "ll",

  "ip": null,

  "deptId": null,

  "roleId": null,

  "idCard": null,

  "fileUrl": null,

  "password": "e10adc3949ba59abbe56e057f20f883e",

  "deleteFlag": "1",

  "createTime": 1535111701000,

  "creator": null,

  "updateTime": 1535115358000,

  "updator": null,

  "version": 180824195501

}

5.删除用户

DELETE    http://localhost:8084/mis-xdja/restful/user/{id}

Response Codes

Success

Code

Reason

200 - OK

请求成功

Error

Code

Reason

400 - Bad Request

无效请求内容,参数错误

401 - Unauthorized

用户未授权(未登录)

403 - Forbidden

无权限访问访问

500- Internal Server Error

服务器内部异常

Request Parameters

请求参数只有只要实体中定义了属性字段都可以当为请求参数,为了节约篇幅只列举部分参数

解释:

path(路径)

由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

参数名

所在域

类型

描述

id

path

Integer

用户id

Request Example

http://localhost:8084/mis-xdja/restful/user/34

Response Parameters

相应参数如:1.创建用户

Response Example

无响应参数,客户端根据返回的状态码就知道是否操作成功。

也可以返回返回业务处理成功信息

源码地址:https://gitee.com/niugangxy/RESTfulAPI

微信公众号

                          
posted @ 2020-01-13 15:34  盲目的拾荒者  阅读(215)  评论(0编辑  收藏  举报