NOTE: This is not longer maintained
We've moved the official swagger-play2 module to here:
https://github.com/wordnik/swagger-core/tree/master/modules/swagger-play2
There is also a sample project to get you started:
https://github.com/wordnik/swagger-core/tree/master/samples/scala-play2
Swagger for Play 2.0 Apps
INSTALLATION
- This works with Play 2.0
Clone, build and deploy this fork of swagger-core using "ant deploy". This fork works with scala 2.9.1 which Play 2.0 requires and has additional annotations for supporting Play 2.0 style controllers. https://github.com/ayush/swagger-core
Clone swagger-play2 from https://github.com/ayush/swagger-play2
Deploy swagger-play2 using play2's publish-local command
In YOUR APP's Build.scala, add this dependency "swagger-play2" %% "swagger-play2" % "1.0"
In YOUR APP, do reload/update and swagger-play2 should be present.
USAGE - routes file in YOUR APP's routes add these lines:
Swagger - Root Resources Listing
GET /resources.json controllers.ApiHelpController.getResources GET /resources.xml controllers.ApiHelpController.getResources
GET /admin.json controllers.ApiHelpController.getResource(path = "/admin") GET /admin.xml controllers.ApiHelpController.getResource(path = "/admin")
GET /admin.json/health controllers.AdminController.getHealth() GET /admin.xml/health controllers.AdminController.getHealth() GET /admin.json/ping controllers.AdminController.ping() GET /admin.xml/ping controllers.AdminController.ping()
USAGE - controllers For Swagger to recognize your controller methods as API point, you can add the following annotations to a controller method: @Path("/add-employee")
@ApiOperation(value = "Add a new employee", notes = "", responseClass = "string", httpMethod = "POST") @ApiParamsImplicit(Array( new ApiParamImplicit(name = "id", value = "id of employee", required = true, dataType = "string", paramType = "query"), new ApiParamImplicit(name = "name", value = "Name of employee", required = true, dataType = "string", paramType = "query"), new ApiParamImplicit(name = "salary", value = "The salary which the poor soul gets", required = true, dataType = "string", paramType = "query") )) def addEmployee() = Action { implicit request => // get the params and do the jig }