2017-10-06 88 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? –