rest服务swagger

  • 该帖子最初在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:// e.cúrity

注意:同时,James Ward批准了我的拉取请求,将这些更改添加到他的项目GitHub中,因此您应该将其拉出

翻译自: https://www.javacodegeeks.com/2015/08/its-easy-to-document-your-play-framework-rest-api-with-swagger.html

rest服务swagger

rest服务swagger_使用Swagger轻松记录您的Play Framework REST API相关推荐

  1. 使用Swagger轻松记录您的Play Framework REST API

    该帖子最初在http:// swag ger.io(7/30/2015)上发布 我一直在将Play Framework用作几个项目的基于Java的,快速的REST后端框架. 后来,我很高兴找到Swag ...

  2. 华为云对象存储OBS,安全可靠的云存储服务,让企业轻松上云

    随着时代的不断发展,不管是个人还是企业对数据的存储要求也越来越高,对于普通人来说,我们可以把文件.视频.图片等等存储到电脑.手机或者U盘等硬件设备中,但对于企业来说,庞大的数据量必须依靠专业的存储设备 ...

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

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

  4. rest服务swagger_在Java EE 7上骑骆驼–带有Swagger文档的REST服务

    rest服务swagger 骆驼开箱即用. Swagger集成就是其中之一. 不幸的是,大多数已经存在的功能都严重依赖于Spring. 但这并不能阻止我们在普通的Java EE 7应用程序中使用它们, ...

  5. 使用RestTemplate模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别

    Spring 与 Restful 整合才是微架构的核心,虽然在整个 SpringBoot(SpringCloud)之中提供有大量的 服务方便整合,但是这些 整合都不如 Rest 重要,因为 Rest ...

  6. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  7. 聚合微服务中的 Swagger API 文档

    没有做 API 文档聚合,访问每个服务的 API 文档都需要访问单独的 swagger-ui.html 页面,既然我们使用了微服务,就应该有统一的 API 文档入口,而 knife4j 有这方面的支持 ...

  8. springcloud微服务整合/集成swagger(knife4j-小刀)实现在线文档调试和查看功能

    1.在gateway网关层加入以下依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifact ...

  9. 2022学习0427【K8S 集群IO高,导致服务挂掉,排障记录】

    庆祝一下,今天解决了一个困扰我一个多月的问题! [问题背景]:2核2G的腾讯云S5服务器上通过minikube部署了K8S集群.上面有nodejs,grafana两个deployment,以及file ...

最新文章

  1. 【306】通过ArcPy编写ArcToolbox
  2. 支付宝APP支付 统一下单 php服务端 tp5
  3. .net core 源码解析-mvc route的注册,激活,调用流程(三)
  4. oracle宕机原因排查,oracle不定期的出现宕机的问题诊断
  5. RHEL4.4安装YUM
  6. MCU —— 数码管显示笔记
  7. Android 四大组件学习之Activity三
  8. android进阶(三)数据存储之Internal Storage
  9. jwplayer android m3u8,播放上jwplayer M3U8文件,而RTMP
  10. 论文笔记——News Recommendation with Topic-Enriched Knowledge Graphs
  11. 解决 E45: 'readonly' option is set (add ! to override)
  12. 详解主流浏览器多进程架构:Chrome、IE
  13. world2010 插入参考文献时有跳行的问题
  14. 致小班:无论身处何方,一定要怀揣着一颗上进的心
  15. GEE|在地图上显示传入的shp数据
  16. 小学有计算机课程吗,小学计算机是不是就是信息技术啊
  17. java 调用火狐内核_[图文]自己动手做J浏览器——基于JAVA和火狐内核(gecko)
  18. JavaSwing_2.6: JTextField(文本框)
  19. 装nvida显卡驱动后循环登录 闪退的方法UBUNTU16.04
  20. ITeye还有人维护吗?

热门文章

  1. AT4995-[AGC034E] Complete Compress【树形dp】
  2. Java中线程池,你真的会用吗
  3. Java中的函数传递
  4. ItemCF,基于物品的协同过滤算法
  5. WEB攻击手段及防御-扩展篇
  6. C++描述杭电OJ 2012.素数判定 ||
  7. 使用jdbc连接mysql数据库代码示例
  8. 什么时候才能都及格呢?
  9. IP暴露接口IP白名单设置
  10. Restlet Client 安装 网盘里面有压缩文件夹下载引用即可 谷歌浏览器