使用Swagger轻松记录您的Play Framework REST API
- 该帖子最初在http:// swag ger.io(7/30/2015)上发布
我一直在将Play Framework用作几个项目的基于Java的,快速的REST后端框架。 后来,我很高兴找到Swagger,并努力将其集成到几个项目中。 在我第一次挣扎时,我认为分享经验并撰写一篇“如何做”的文章来描述快速成功的步骤将很有用。
为了简化操作,我开始使用James Ward创建的现有Play框架,Java,JPA,REST项目。 James的项目位于GitHub上,因此在开始此方法之前, 应先将其拉出 。
操作步骤
- 首先,将依赖项添加到build.sbt中。 我可以通过参考GitHub问题55o解决示例项目中使用的Play Framework 2.3.0版本和swagger-core的依赖问题: https:// g g e r-p i / s w g g e r-c o r e / i你/ 550 。
"com.wordnik" %% "swagger-play2" % "1.3.12" exclude("org.reflections", "reflections"), "org.reflections" % "reflections" % "0.9.8" notTransitive (), "org.webjars" % "swagger-ui" % "2.1.8-M1"
- 将此添加到您的配置application.conf中:
api.version="1.0" swagger.api.basepath="http://localhost:9000"
- 将api-docs路由添加到路由文件:
GET / controllers.Assets.at(path="/public", file="index.html")GET /api-docs controllers.ApiHelpController.getResourcesPOST /login controllers.SecurityController.login() POST /logout controllers.SecurityController.logout()GET /api-docs/api/todos controllers.ApiHelpController.getResource(path = "/api/todos") GET /todos controllers.TodoController.getAllTodos() POST /todos controllers.TodoController.createTodo()# Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.at(path="/public", file)
- 将Swagger注释添加到ToDoController(@Api):
@Api(value = "/api/todos", description = "Operations with Todos") @Security.Authenticated(Secured.class) public class TodoController extends Controller {
然后是GET和POST方法的注释:
@ApiOperation(value = "get All Todos",notes = "Returns List of all Todos",response = Todo.class, httpMethod = "GET") public static Result getAllTodos() { return ok(toJson(models.Todo.findByUser(SecurityController.getUser()))); } @ApiOperation( nickname = "createTodo", value = "Create Todo", notes = "Create Todo record", httpMethod = "POST", response = Todo.class) @ApiImplicitParams( { @ApiImplicitParam( name = "body", dataType = "Todo", required = true, paramType = "body", value = "Todo" ) } ) @ApiResponses( value = { @com.wordnik.swagger.annotations.ApiResponse(code = 400, message = "Json Processing Exception") } ) public static Result createTodo() { Form<models.Todo> form = Form.form(models.Todo.class).bindFromRequest(); if (form.hasErrors()) { return badRequest(form.errorsAsJson()); } else { models.Todo todo = form.get(); todo.user = SecurityController.getUser(); todo.save(); return ok(toJson(todo)); } }
- 启动应用程序,然后在浏览器中转到以下URL:
http://localhost:9000/assets/lib/swagger-ui/index.html?/url=http://localhost:9000/api-docs
源代码
如开始所述,我从James Ward在github上的play-rest-security开始,并在我的fork上进行了这些修改。 对于所有感兴趣的人,这里是源代码:
- https://紧急情况
注意:同时,James Ward批准了我的拉取请求,将这些更改添加到他的项目GitHub中,因此您应该将其拉出
翻译自: https://www.javacodegeeks.com/2015/08/its-easy-to-document-your-play-framework-rest-api-with-swagger.html
使用Swagger轻松记录您的Play Framework REST API相关推荐
- rest服务swagger_使用Swagger轻松记录您的Play Framework REST API
rest服务swagger 该帖子最初在http:// swag ger.io(7/30/2015)上发布 我一直在使用Play Framework作为多个项目的基于Java的,闪电般的REST后端框 ...
- django rest framework 使用api接口文档
django rest framework 使用api接口文档 一.使用swagger生成api接口文档 二.使用drf自带的api接口文档 三.drf-yasg 一.使用swagger生成api接口 ...
- Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程
<android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...
- Entity Framework Fluent API
原文:Entity Framework Fluent API 前言 使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入EntityFramewo ...
- Entity Framework Fluent API - Relationships
Entity Framework Fluent API - Relationships
- 内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发丨内存池|mtrace||API实现|框架封装|中间件|异步请求|连接池
内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发 视频讲解如下,点击观看: 内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发丨内存池|mtrace||API实现|框架封装|中间件|异步请求 ...
- 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南
目录 介绍 背景 第1步:创建一个新项目 第2步:添加模型类 第3步:使用Entity Framework Core 第4步:添加数据库上下文和控制器 步骤5:在Package Manager控制台中 ...
- 手机语音转文字怎么做才简单?按下这个按钮,一键轻松记录
很多朋友都是语音转文字很困难,其实我们用对方法,语音转文字就特别简单,下面笔者就教大家一个方法,手机按下这个按钮,就能非常轻松的记录了. 方法一:录音机记录 很多朋友都会说录音机记录,到后面还不是要人 ...
- 上班还想摸鱼!这个牛逼的Python模块,轻松记录键盘操作!
模拟键盘操作执行自动化任务,我们常用的有 pyautowin 等自动化操作模块.但是这些模块有一个很大的缺点,编译的时候非常依赖 windows 的C语言底层模块. 今天介绍的这个模块叫做 keybo ...
最新文章
- .exp文件_mini_httpd 任意文件读取漏洞(附EXP脚本)
- 自学python爬虫要多久-入门Python爬虫要学习多久?
- linux硬件抽象层框图,理解和使用Linux的硬件抽象层HAL.docx
- java多线程系列:ThreadPoolExecutor源码分析
- Linux高性能网络:协程系列08-协程实现之调度器
- how to replace the note reuse project into my own one
- abap 中modify 的使用
- spring观察者模式_Spring事件的观察者模式
- LongAdder和AtomicLong哪个性能更好,为什么?
- P1091 合唱队形
- 手机游戏再造创业神话 80后月入过百万
- 谈谈iOS多线程的锁
- 2个方法解决PDF转成WORD
- 经典枚举——百钱百鸡问题
- Vue3格式化Volar报错
- 【元宵节】中国人民大学与加拿大女王大学金融硕士项目与你的那份“缘”
- directX学习系列8 颜色融合(转)
- C语言 写一个函数求两个数的较大值
- IE浏览器官方下载合集
- 完美世界2018年净利润17亿元 同比增长13.16%
热门文章
- 人脸检测的model类facemodel
- struts+hibernate+oracle+easyui实现lazyout组件的简单案例——struts.xml配置详情
- 如何用xshell上宝塔
- SpringBoot运行原理初探
- java path 注解_@PathVariable注解的使用和@Requestparam
- java serial_Java的@Serial批注
- 连接堡垒机出现java环境_Java 8:长期支持的堡垒
- 净资产滚动率_净资产的结构
- 接口中默认方法和静态方法_接口中的默认方法和静态方法
- netty socket_Netty:另一种Web(Socket)服务器