http://git.oschina.net/redArmy/spring-cloud-books/blob/master/spring-cloud-provider-book/src/main/java/com/wujunshen/controller/BookController.java /**
* @param book 传入的book对象实例
* @return 成功或失败信息,json格式封装
*/
@PostMapping(value = "/api/books", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiOperation(value = "添加某本书籍", httpMethod = "POST",
notes = "添加成功返回bookId",
response = BaseResultVo.class
)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = BaseResultVo.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public BaseResultVo saveBook(@Validated @ApiParam(value = "添加的某本书籍信息", required = true) @RequestBody Book book) {
BaseResultVo baseResultVo = new BaseResultVo();
baseResultVo.setData(bookService.saveBook(book));
baseResultVo.setCode(ResultStatusCode.OK.getCode());
baseResultVo.setMessage(ResultStatusCode.OK.getMessage());
return baseResultVo;
}
/**
* @return 成功或失败信息,json格式封装
*/
@GetMapping(value = "/api/books", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiOperation(value = "查询所有书籍", httpMethod = "GET",
notes = "查询所有书籍",
response = BaseResultVo.class
)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = BaseResultVo.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public BaseResultVo getBooks() {
Books books = bookService.getBooks();
BaseResultVo baseResultVo = new BaseResultVo();
if ((books != null) && (!books.getBookList().isEmpty())) {
baseResultVo.setData(books);
baseResultVo.setCode(ResultStatusCode.OK.getCode());
baseResultVo.setMessage(ResultStatusCode.OK.getMessage());
} else {
baseResultVo.setCode(ResultStatusCode.DATA_QUERY_ERROR.getCode());
baseResultVo.setData("Query books failed");
baseResultVo.setMessage(ResultStatusCode.DATA_QUERY_ERROR.getMessage());
}
return baseResultVo;
}
/**
* @param bookId 传入的bookId
* @return 成功或失败信息,json格式封装
*/
@GetMapping(value = "/api/books/{bookId:[0-9]*}")
@ApiOperation(value = "查询某本书籍", httpMethod = "GET",
notes = "根据bookId,查询到某本书籍",
response = BaseResultVo.class
)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = BaseResultVo.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public BaseResultVo getBook(@ApiParam(value = "书籍ID", required = true) @PathVariable("bookId") Integer bookId) {
LOGGER.info("请求参数bookId值:{}", bookId);
Book book = bookService.getBook(bookId);
BaseResultVo baseResultVo = new BaseResultVo();
if (book != null) {
LOGGER.info("查询到书籍ID为{}的书籍", bookId);
baseResultVo.setData(book);
baseResultVo.setCode(ResultStatusCode.OK.getCode());
baseResultVo.setMessage(ResultStatusCode.OK.getMessage());
} else {
LOGGER.info("没有查询到书籍ID为{}的书籍", bookId);
baseResultVo.setCode(ResultStatusCode.DATA_QUERY_ERROR.getCode());
baseResultVo.setData("Query book failed id=" + bookId);
baseResultVo.setMessage(ResultStatusCode.DATA_QUERY_ERROR.getMessage());
}
return baseResultVo;
}
@PutMapping(value = "/api/books/{bookId:[0-9]*}")
@ApiOperation(value = "更新某本书籍", httpMethod = "PUT",
notes = "更新的某本书籍信息",
response = BaseResultVo.class
)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = BaseResultVo.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public BaseResultVo updateBook(@NotNull @ApiParam(value = "要更新的某本书籍ID", required = true) @PathVariable("bookId") Integer bookId, @Validated @NotNull @ApiParam(value = "要更新的某本书籍信息", required = true) @RequestBody Book book) {
LOGGER.info("请求参数bookId值:{}", bookId);
BaseResultVo baseResultVo = new BaseResultVo();
if (bookId == null && book == null) {
baseResultVo.setCode(ResultStatusCode.DATA_INPUT_ERROR.getCode());
baseResultVo.setMessage(ResultStatusCode.DATA_INPUT_ERROR.getMessage());
return baseResultVo;
}
if (bookService.getBook(bookId) == null) {
baseResultVo.setCode(ResultStatusCode.DATA_QUERY_ERROR.getCode());
baseResultVo.setData("book id=" + bookId + " not existed");
baseResultVo.setMessage(ResultStatusCode.DATA_QUERY_ERROR.getMessage());
return baseResultVo;
}
Book updatedBook = bookService.updateBook(book);
if (updatedBook != null) {
baseResultVo.setData(updatedBook);
baseResultVo.setCode(ResultStatusCode.OK.getCode());
baseResultVo.setMessage(ResultStatusCode.OK.getMessage());
} else {
baseResultVo.setCode(ResultStatusCode.DATA_UPDATED_ERROR.getCode());
baseResultVo.setData("Update book failed id=" + book.getBookId());
baseResultVo.setMessage(ResultStatusCode.DATA_UPDATED_ERROR.getMessage());
}
return baseResultVo;
}
@DeleteMapping(value = "/api/books/{bookId:[0-9]*}")
@ApiOperation(value = "删除某本书籍信息", httpMethod = "DELETE",
notes = "删除某本书籍信息",
response = BaseResultVo.class
)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = BaseResultVo.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public BaseResultVo deleteBook(@ApiParam(value = "要删除的某本书籍ID", required = true) @PathVariable("bookId") Integer bookId) {
BaseResultVo baseResultVo = new BaseResultVo();
if (bookService.deleteBook(bookId) == 1) {
baseResultVo.setData("Deleted book id=" + bookId);
baseResultVo.setCode(ResultStatusCode.OK.getCode());
baseResultVo.setMessage(ResultStatusCode.OK.getMessage());
} else {
baseResultVo.setCode(ResultStatusCode.DATA_DELETED_ERROR.getCode());
baseResultVo.setData("Deleted book failed id=" + bookId);
baseResultVo.setMessage(ResultStatusCode.DATA_DELETED_ERROR.getMessage());
}
return baseResultVo;
}

swagger and restful api 参考的更多相关文章

  1. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  2. 使用swagger作为restful api的doc文档生成

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  3. 使用swagger作为restful api的doc文档生成——从源码中去提取restful URL接口描述文档

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  4. 基于jeesite的cms系统(三):使用RESTful API在前端渲染数据

    使用RESTful API可以更好的开发前后分离的应用,后面一节会介绍使用模版引擎Beetl开发后端渲染的应用. 一.配置Swagger(Api 接口文档) 1.使用系统自带 拷贝jeesite-mo ...

  5. Yii2 Restful API 原理分析

    Yii2 有个很重要的特性是对 Restful API的默认支持, 通过短短的几个配置就可以实现简单的对现有Model的RESTful API 参考另一篇文章: http://www.cnblogs. ...

  6. Yii2+Swagger搭建RESTful风格的API项目

    在现有的Advanced Template上搭建RESTful API项目的步骤: 本案例前提说明: 本例中不使用\yii\rest\ActiveController自动创建的API,而是自定义一个A ...

  7. ****RESTful API 设计最佳实践(APP后端API设计参考典范)

    http://blog.jobbole.com/41233/ 背景 目前互联网上充斥着大量的关于RESTful API(为方便,下文中“RESTful API ”简写为“API”)如何设计的文章,然而 ...

  8. spring boot之使用springfox swagger展示restful的api doc

    摘要 springfox swagger展示restful的api doc, swagger is A POWERFUL INTERFACE TO YOUR API. 新增文件: import org ...

  9. 使用swagger 生成 Flask RESTful API

    使用swagger 生成 Flask RESTful API http://www.voidcn.com/article/p-rcvzjvpf-e.html swagger官网 https://swa ...

随机推荐

  1. 以log(n)的时间求矩形内的点

    设想这么一个简单的问题,在一个平面上有n个点,给定一个矩形,问位于矩形内的点有哪些. 这个问题的简单思路非常简单,每次遍历所有点,看其是否在给定的矩形中.时间复杂度呢?单次查询的时间就是一次遍历的时间 ...

  2. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

  3. SMTP 协议系列一

    解说一下DOS下telnet命令发送邮件 步骤,以我的163邮箱为例 1.開始-->cmd 进入到dos里面 2.输入telnet  smtp.163.com  25 C: \Users \Ad ...

  4. 在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)

    两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1. 传统同步请求参数 accept text/html,application/xhtml+xml,applica ...

  5. springboot项目打包提示Unable to find a single main class from the following candidates错误

    提示Unable to find a single main class from the following candidates错误的原因是会从所有代码里面扫描包括main方法的类,找到多个类就报 ...

  6. 微信小程序 - 实现购物车结算

    示例源码下载:小程序-实现购物车结算

  7. WPF使用DEV之TreeListControl---加入复选框

    1.绑定的Class中加入一个Bool类型的属性 2.   该属性无需初始赋值,你执行就可以看到如图: Bool类型数据自己主动变成了复选框 watermark/2/text/aHR0cDovL2Js ...

  8. POJ 3414 Pots(BFS+回溯)

    Pots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11705   Accepted: 4956   Special J ...

  9. $stateParams 详解

     如何传递参数(参考 http://www.cnblogs.com/jager/p/5293225.html) 首先,要在目标页面定义接受的参数: 传参, ui-sref: $state.go: 接收 ...

  10. JAVA遍历Map的方法

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...