zoukankan      html  css  js  c++  java
  • 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

    微信公众号

                              
  • 相关阅读:
    Linux的进程线程及调度
    Linux-485收发切换延迟的解决方法
    FFmpeg内存IO模式(内存区作输入或输出)
    ffplay源码分析7-播放控制
    ffplay源码分析6-音频重采样
    ffplay源码分析5-图像格式转换
    ffplay源码分析4-音视频同步
    ffplay源码分析3-代码框架
    ffplay源码分析2-数据结构
    ffplay源码分析1-概述
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12187544.html
Copyright © 2011-2022 走看看