package {{package}} {{#imports}}import {{import}} {{/imports}} import java.io.File import org.scalatra.{ TypedParamSupport, ScalatraServlet } import org.scalatra.swagger._ import org.json4s._ import org.json4s.JsonDSL._ import org.scalatra.json.{ JValueResult, JacksonJsonSupport } import org.scalatra.servlet.{FileUploadSupport, MultipartConfig, SizeConstraintExceededException} import scala.collection.JavaConverters._ class {{classname}} (implicit val swagger: Swagger) extends ScalatraServlet with FileUploadSupport with JacksonJsonSupport with SwaggerSupport { protected implicit val jsonFormats: Formats = DefaultFormats protected val applicationDescription: String = "{{classname}}" override protected val applicationName: Option[String] = Some("{{baseName}}") before() { contentType = formats("json") response.headers += ("Access-Control-Allow-Origin" -> "*") } {{#operations}} {{#operation}} {{newline}} val {{nickname}}Operation = (apiOperation[{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Unit{{/returnType}}]("{{nickname}}") summary "{{{summary}}}" parameters( {{#allParams}} {{#queryParameter}} queryParam[{{dataType}}]("{{paramName}}").description(""){{^required}}.optional{{/required}}{{#defaultValue}}.defaultValue({{{defaultValue}}}){{/defaultValue}} {{/queryParameter}} {{#pathParameter}} pathParam[{{dataType}}]("{{paramName}}").description(""){{#defaultValue}}.defaultValue({{{defaultValue}}}){{/defaultValue}} {{/pathParameter}} {{#headerParameter}} headerParam[{{dataType}}]("{{paramName}}").description(""){{^required}}.optional{{/required}}{{#defaultValue}}.defaultValue({{{defaultValue}}}){{/defaultValue}} {{/headerParameter}} {{#bodyParameter}} bodyParam[{{dataType}}]("{{paramName}}").description(""){{^required}}.optional{{/required}}{{#defaultValue}}.defaultValue({{{defaultValue}}}){{/defaultValue}} {{/bodyParameter}} {{#formParameter}} formParam[{{dataType}}]("{{paramName}}").description(""){{^required}}.optional{{/required}}{{#defaultValue}}.defaultValue({{{defaultValue}}}){{/defaultValue}} {{/formParameter}} {{#hasMore}},{{/hasMore}} {{/allParams}}) ) {{httpMethod}}("{{path}}",operation({{nickname}}Operation)) { {{#allParams}} {{#isFile}} val {{paramName}} = fileParams("{{paramName}}") {{/isFile}} {{#notFile}} {{#pathParameter}} val {{paramName}} = params.getOrElse("{{paramName}}", halt(400)) {{/pathParameter}} {{#queryParameter}} val {{paramName}} = params.getAs[{{dataType}}]("{{paramName}}") {{/queryParameter}} {{#headerParameter}} val {{paramName}} = request.getHeader("{{paramName}}") {{/headerParameter}} {{#formParameter}} val {{paramName}} = params.getAs[{{dataType}}]("{{paramName}}") {{/formParameter}} {{#bodyParameter}} val {{paramName}} = parsedBody.extract[{{dataType}}] {{/bodyParameter}} {{/notFile}} println("{{paramName}}: " + {{paramName}}) {{/allParams}} } {{/operation}} {{/operations}} }