2017-10-06 86 views
3

Swagger UI的API文档,我用同样的方式就像在official specification访问它,我用下一个URL:播放扬鞭UI网址别名

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

什么shold我改变,因此这行得通?

回答

1

你不能在文件路径短促/docs/swagger-ui/index.html?url=/assets/swagger.json因为index.htmlswagger-ui plugin产生public目录和URL需要ACCE ss到附近的文件(如js和css文件)。 Play swagger-ui使用javascript获取json基于URL参数的路由描述,以便将此文档进一步解析为swagger-ui,在您的情况下,它是/assets/swagger.json端点。

我试图让映射招摇的index.html文件,所以通过json位置像URL parameter直接:

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

播放不能渲染这个页面,且并未发现CSS。我附加虚拟映射到每个文件中招摇的默认目录/public/lib/swagger-ui

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

即使是播放后无法正确渲染index.html

0

如何可以解决无间隙,扬鞭:

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

GET /文档
controllers.Assets.versioned(PATH = “/公/规范”,文件:资产 =“swagger.json “)

+0

我的'swagger.json'从端点获得/assets/swagger.json – pacman

+0

我想用玩游戏来解决它,我不需要本地的swagger-api – pacman

+0

@pacman,明白了,但是什么是使用玩游戏的方式解决问题的好处,而不是本地的swagger-api? –