• 该帖子最初在http:// swag ger.io(7/30/2015)上发布

我一直在将Play Framework用作几个项目的基于Java的,快速的REST后端框架。 后来,我很高兴找到Swagger,并努力将其集成到几个项目中。 在我第一次挣扎时,我认为分享经验并撰写一篇“如何做”的文章来描述快速成功的步骤将很有用。

为了简化操作,我开始使用James Ward创建的现有Play框架,Java,JPA,REST项目。 James的项目位于GitHub上,因此在开始此方法之前, 应先将其拉出 。

操作步骤

  1. 首先,将依赖项添加到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"
  2. 将此添加到您的配置application.conf中:

    api.version="1.0" swagger.api.basepath="http://localhost:9000"

  3. 将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)
  4. 将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)); }
    }
  5. 启动应用程序,然后在浏览器中转到以下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相关推荐

  1. rest服务swagger_使用Swagger轻松记录您的Play Framework REST API

    rest服务swagger 该帖子最初在http:// swag ger.io(7/30/2015)上发布 我一直在使用Play Framework作为多个项目的基于Java的,闪电般的REST后端框 ...

  2. django rest framework 使用api接口文档

    django rest framework 使用api接口文档 一.使用swagger生成api接口文档 二.使用drf自带的api接口文档 三.drf-yasg 一.使用swagger生成api接口 ...

  3. Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程

    <android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...

  4. Entity Framework Fluent API

    原文:Entity Framework Fluent API 前言 使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入EntityFramewo ...

  5. Entity Framework Fluent API - Relationships

    Entity Framework Fluent API - Relationships

  6. 内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发丨内存池|mtrace||API实现|框架封装|中间件|异步请求|连接池

    内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发 视频讲解如下,点击观看: 内存泄漏的3个解决方案与原理实现,掌握一个轻松应对开发丨内存池|mtrace||API实现|框架封装|中间件|异步请求 ...

  7. 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南

    目录 介绍 背景 第1步:创建一个新项目 第2步:添加模型类 第3步:使用Entity Framework Core 第4步:添加数据库上下文和控制器 步骤5:在Package Manager控制台中 ...

  8. 手机语音转文字怎么做才简单?按下这个按钮,一键轻松记录

    很多朋友都是语音转文字很困难,其实我们用对方法,语音转文字就特别简单,下面笔者就教大家一个方法,手机按下这个按钮,就能非常轻松的记录了. 方法一:录音机记录 很多朋友都会说录音机记录,到后面还不是要人 ...

  9. 上班还想摸鱼!这个牛逼的Python模块,轻松记录键盘操作!

    模拟键盘操作执行自动化任务,我们常用的有 pyautowin 等自动化操作模块.但是这些模块有一个很大的缺点,编译的时候非常依赖 windows 的C语言底层模块. 今天介绍的这个模块叫做 keybo ...

最新文章

  1. .exp文件_mini_httpd 任意文件读取漏洞(附EXP脚本)
  2. 自学python爬虫要多久-入门Python爬虫要学习多久?
  3. linux硬件抽象层框图,理解和使用Linux的硬件抽象层HAL.docx
  4. java多线程系列:ThreadPoolExecutor源码分析
  5. Linux高性能网络:协程系列08-协程实现之调度器
  6. how to replace the note reuse project into my own one
  7. abap 中modify 的使用
  8. spring观察者模式_Spring事件的观察者模式
  9. LongAdder和AtomicLong哪个性能更好,为什么?
  10. P1091 合唱队形
  11. 手机游戏再造创业神话 80后月入过百万
  12. 谈谈iOS多线程的锁
  13. 2个方法解决PDF转成WORD
  14. 经典枚举——百钱百鸡问题
  15. Vue3格式化Volar报错
  16. 【元宵节】中国人民大学与加拿大女王大学金融硕士项目与你的那份“缘”
  17. directX学习系列8 颜色融合(转)
  18. C语言 写一个函数求两个数的较大值
  19. IE浏览器官方下载合集
  20. 完美世界2018年净利润17亿元 同比增长13.16%

热门文章

  1. 人脸检测的model类facemodel
  2. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——struts.xml配置详情
  3. 如何用xshell上宝塔
  4. SpringBoot运行原理初探
  5. java path 注解_@PathVariable注解的使用和@Requestparam
  6. java serial_Java的@Serial批注
  7. 连接堡垒机出现java环境_Java 8:长期支持的堡垒
  8. 净资产滚动率_净资产的结构
  9. 接口中默认方法和静态方法_接口中的默认方法和静态方法
  10. netty socket_Netty:另一种Web(Socket)服务器