我正在尝试让Swagger在Play2应用程序中工作。我在build.sbt中包括了依赖项。"com.wordnik" %% "swagger-play2" % "1.3.1"
我已经定义了一系列路线。
GET /api-docs controllers.ApiHelpController.getResources
GET /api-docs/building controllers.ApiHelpController.getResource(path = "/building")
GET /building controllers.Application.building
我也有一个模型,该模型从Slick中提取数据并具有注释。
package models
import scala.slick.driver.SQLServerDriver.simple._
import play.api.libs.json._
import play.api.db.DB
import play.api.Play.current
import Database.threadLocalSession
@XmlRootElement(name = "Building")
case class Building(@XmlElement(name = "BuildingCode") BuildingCode: String,
@XmlElement(name = "BuildingDescription") BuildingDescription: String)
object Building {
lazy val database = Database.forDataSource(DB.getDataSource())
implicit val BuildingReads = Json.reads[Building]
implicit val BuildingWrites = Json.writes[Building]
val BuildingTable = new Table[Building]("building"){
def BuildingCode = column[String]("BuildingCode", O.PrimaryKey)
def BuildingDescription = column[String]("BuildingDescription")
def * = BuildingCode ~ BuildingDescription <> (Building.apply _, Building.unapply _)
}
def getAll: Seq[Building] = {
database withSession {
val q = Query(BuildingTable)
q.list
}
}
}
这是我的控制器的外观。
object Application extends Controller {
def building = Action {
Ok(Json.toJson(Building.getAll))
}
}
当我导航到/ api-docs时,页面将呈现。
{"apiVersion":"beta","swaggerVersion":"1.2"}
然后,如果我导航到/ api-docs / building,则不会呈现任何内容。最终,当我导航到/ building时,我收到了有效载荷。我不确定Swagger还要生成什么数据。有人可以指出我正确的方向吗?
您可以发布控制器实现吗?该错误很可能是由于注释缺失/不正确所致。
另外,请查看https://github.com/wordnik/swagger-core/tree/master/samples/scala-play2,以获得一个出色的play2-swagger应用程序示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句