播放 Swagger UI 网址别名



我有API文档的Swagger UI,我使用与官方规范中相同的方法来访问它,我使用下一个URL:

http://localhost:9000/docs/swagger-ui/index.html?url=/assets/swagger.json

但我想改用http://localhost:9000/docs/。我不想用WS来委派,我想在routes中使用单行,像这样:

GET /docs controllers.Assets.at(path:String="/public/lib/swagger-ui", file:String="index.html?url=/assets/swagger.json")

GET /docs controllers.Assets.at(path:String="/public/lib/swagger-ui", file:String="index.html")

http://localhost:9000/docs?url=/assets/swagger.json

我应该改变什么才能工作?

如何在没有 Play-Swagger 的情况下解决它:

  1. 在项目中创建目录公共\招摇;
  2. 从 https://github.com/swagger-api/swagger-ui/tree/master/dist 下载所有文件并将它们复制到公共\招摇;
  3. 将你的 swagger.json(这是规范,对吧?)复制到 public\specification;
  4. 添加到路由文件的下一行:

获取/文档
控制器。Assets.versioned(path="/public/specification", file: Asset = "swagger.json")

不能

缩短 URL /docs/swagger-ui/index.html?url=/assets/swagger.json的路由文件index.html因为 URL 是由swagger-ui plugin to public 目录生成的,并且需要访问附近的文件(如 js 和 css 文件)。 Play swagger-ui使用 javascript 通过 URL 参数获取基于json路由的描述,以进一步将此文档解析为 swagger-ui,在您的情况下,它是/assets/swagger.json端点。

我尝试使映射 swagger 的 index.html 文件,因此直接传递json位置,如下所示URL parameter

GET     /swagger-ui         controllers.Assets.at(path = "/public/lib/swagger-ui", file = "index.html")

Play 无法呈现此页面,并且找不到 CSS。我将虚拟映射附加到 swagger 默认目录中的每个文件/public/lib/swagger-ui

GET     /*file              controllers.Assets.at(path = "/public/lib/swagger-ui", file)

即使在那之后,Play也无法正确渲染index.html

相关内容

  • 没有找到相关文章

最新更新