forked from loafle/openapi-generator-original
updated example
This commit is contained in:
parent
e8e8c18c8f
commit
f167959a38
@ -37,6 +37,8 @@ object ScalatraServerGenerator extends BasicScalaGenerator {
|
|||||||
|
|
||||||
override def apiPackage = Some("apis")
|
override def apiPackage = Some("apis")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// supporting classes
|
// supporting classes
|
||||||
override def supportingFiles = List(
|
override def supportingFiles = List(
|
||||||
("README.mustache", outputFolder, "README.md"),
|
("README.mustache", outputFolder, "README.md"),
|
||||||
@ -57,6 +59,10 @@ object ScalatraServerGenerator extends BasicScalaGenerator {
|
|||||||
val paramList = k._2.asInstanceOf[List[_]]
|
val paramList = k._2.asInstanceOf[List[_]]
|
||||||
paramList.foreach(param => {
|
paramList.foreach(param => {
|
||||||
val map = param.asInstanceOf[scala.collection.mutable.HashMap[String, AnyRef]]
|
val map = param.asInstanceOf[scala.collection.mutable.HashMap[String, AnyRef]]
|
||||||
|
if(map.contains("dataType")){
|
||||||
|
val dataType = map("dataType")
|
||||||
|
map += "dataType" -> dataType.toString.replaceAll("Array\\[","List[")
|
||||||
|
}
|
||||||
if(map.contains("required")) {
|
if(map.contains("required")) {
|
||||||
if(map("required") == "false") map += "notRequired" -> "true"
|
if(map("required") == "false") map += "notRequired" -> "true"
|
||||||
}
|
}
|
||||||
|
@ -3,13 +3,13 @@ import com.github.siasia.PluginKeys._
|
|||||||
|
|
||||||
assemblySettings
|
assemblySettings
|
||||||
|
|
||||||
organization := "org.eatbacon"
|
organization := "com.wordnik"
|
||||||
|
|
||||||
seq(webSettings :_*)
|
seq(webSettings :_*)
|
||||||
|
|
||||||
mainClass in assembly := Some("JettyMain")
|
mainClass in assembly := Some("JettyMain")
|
||||||
|
|
||||||
name := "sfth"
|
name := "scalatra-sample"
|
||||||
|
|
||||||
version := "0.1.0-SNAPSHOT"
|
version := "0.1.0-SNAPSHOT"
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ class ScalatraBootstrap extends LifeCycle {
|
|||||||
context mount (new PetApi, "/pet/*")
|
context mount (new PetApi, "/pet/*")
|
||||||
context mount (new StoreApi, "/store/*")
|
context mount (new StoreApi, "/store/*")
|
||||||
context mount (new UserApi, "/user/*")
|
context mount (new UserApi, "/user/*")
|
||||||
context mount (new ResourcesApp, "/*")
|
context mount (new ResourcesApp, "/api-docs/*")
|
||||||
} catch {
|
} catch {
|
||||||
case e: Throwable => e.printStackTrace()
|
case e: Throwable => e.printStackTrace()
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class PetApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
protected val applicationDescription: String = "PetApi"
|
protected val applicationDescription: String = "PetApi"
|
||||||
override protected val applicationName: Option[String] = Some("pet")
|
override protected val applicationName: Option[String] = Some("pet")
|
||||||
|
/*
|
||||||
def swaggerToModel(cls: Class[_]) = {
|
def swaggerToModel(cls: Class[_]) = {
|
||||||
val docObj = ApiPropertiesReader.read(cls)
|
val docObj = ApiPropertiesReader.read(cls)
|
||||||
val name = docObj.getName
|
val name = docObj.getName
|
||||||
@ -27,96 +27,79 @@ class PetApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
Model(name, name, fields.toMap)
|
Model(name, name, fields.toMap)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
before() {
|
before() {
|
||||||
contentType = formats("json")
|
contentType = formats("json")
|
||||||
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:petId",
|
|
||||||
summary("Find pet by ID"),
|
|
||||||
nickname("getPetById"),
|
|
||||||
responseClass("Pet"),
|
|
||||||
endpoint("{petId}"),
|
|
||||||
notes("Returns a pet based on ID"),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "petId",
|
|
||||||
description = "ID of pet that needs to be fetched",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
val getPetByIdOperation = (apiOperation[Pet]("getPetById")
|
||||||
|
summary "Find pet by ID"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("petId").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/:petId",operation(getPetByIdOperation)) {
|
||||||
|
val petId = params.getOrElse("petId", halt(400))
|
||||||
|
println(petId)
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/",
|
|
||||||
summary("Add a new pet to the store"),
|
|
||||||
nickname("addPet"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint(""),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "Pet object that needs to be added to the store",
|
|
||||||
dataType = DataType("Pet"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val addPetOperation = (apiOperation[Unit]("addPet")
|
||||||
|
summary "Add a new pet to the store"
|
||||||
|
parameters(
|
||||||
|
bodyParam[Pet]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
post("/",operation(addPetOperation)) {
|
||||||
|
val body = parsedBody.extract[Pet]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
put("/",
|
|
||||||
summary("Update an existing pet"),
|
|
||||||
nickname("updatePet"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint(""),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "Pet object that needs to be updated in the store",
|
|
||||||
dataType = DataType("Pet"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val updatePetOperation = (apiOperation[Unit]("updatePet")
|
||||||
|
summary "Update an existing pet"
|
||||||
|
parameters(
|
||||||
|
bodyParam[Pet]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
put("/",operation(updatePetOperation)) {
|
||||||
|
val body = parsedBody.extract[Pet]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/findByStatus",
|
|
||||||
summary("Finds Pets by status"),
|
|
||||||
nickname("findPetsByStatus"),
|
|
||||||
responseClass("List[Pet]"),
|
|
||||||
endpoint("findByStatus"),
|
|
||||||
notes("Multiple status values can be provided with comma seperated strings"),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "status",
|
|
||||||
description = "Status values that need to be considered for filter",
|
|
||||||
paramType = ParamType.Query,
|
|
||||||
required = true,
|
|
||||||
allowMultiple = true,
|
|
||||||
defaultValue = Some("available"),
|
|
||||||
dataType = DataType("String"))
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val findPetsByStatusOperation = (apiOperation[List[Pet]]("findPetsByStatus")
|
||||||
|
summary "Finds Pets by status"
|
||||||
|
parameters(
|
||||||
|
queryParam[String]("status").description("").defaultValue("available"))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/findByStatus",operation(findPetsByStatusOperation)) {
|
||||||
|
val status = params.getAs[String]("status")
|
||||||
|
println(status)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/findByTags",
|
|
||||||
summary("Finds Pets by tags"),
|
|
||||||
nickname("findPetsByTags"),
|
|
||||||
responseClass("List[Pet]"),
|
|
||||||
endpoint("findByTags"),
|
|
||||||
notes("Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing."),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "tags",
|
|
||||||
description = "Tags to filter by",
|
|
||||||
paramType = ParamType.Query,
|
|
||||||
required = true,
|
|
||||||
allowMultiple = true,
|
|
||||||
defaultValue = None,
|
|
||||||
dataType = DataType("String"))
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val findPetsByTagsOperation = (apiOperation[List[Pet]]("findPetsByTags")
|
||||||
|
summary "Finds Pets by tags"
|
||||||
|
parameters(
|
||||||
|
queryParam[String]("tags").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/findByTags",operation(findPetsByTagsOperation)) {
|
||||||
|
val tags = params.getAs[String]("tags")
|
||||||
|
println(tags)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class StoreApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
protected val applicationDescription: String = "StoreApi"
|
protected val applicationDescription: String = "StoreApi"
|
||||||
override protected val applicationName: Option[String] = Some("store")
|
override protected val applicationName: Option[String] = Some("store")
|
||||||
|
/*
|
||||||
def swaggerToModel(cls: Class[_]) = {
|
def swaggerToModel(cls: Class[_]) = {
|
||||||
val docObj = ApiPropertiesReader.read(cls)
|
val docObj = ApiPropertiesReader.read(cls)
|
||||||
val name = docObj.getName
|
val name = docObj.getName
|
||||||
@ -27,59 +27,51 @@ class StoreApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
Model(name, name, fields.toMap)
|
Model(name, name, fields.toMap)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
before() {
|
before() {
|
||||||
contentType = formats("json")
|
contentType = formats("json")
|
||||||
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/order/:orderId",
|
|
||||||
summary("Find purchase order by ID"),
|
|
||||||
nickname("getOrderById"),
|
|
||||||
responseClass("Order"),
|
|
||||||
endpoint("order/{orderId}"),
|
|
||||||
notes("For valid response try integer IDs with value <= 5. Anything above 5 or nonintegers will generate API errors"),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "orderId",
|
|
||||||
description = "ID of pet that needs to be fetched",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
val getOrderByIdOperation = (apiOperation[Order]("getOrderById")
|
||||||
|
summary "Find purchase order by ID"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("orderId").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/order/:orderId",operation(getOrderByIdOperation)) {
|
||||||
|
val orderId = params.getOrElse("orderId", halt(400))
|
||||||
|
println(orderId)
|
||||||
}
|
}
|
||||||
|
|
||||||
delete("/order/:orderId",
|
|
||||||
summary("Delete purchase order by ID"),
|
|
||||||
nickname("deleteOrder"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("order/{orderId}"),
|
|
||||||
notes("For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors"),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "orderId",
|
|
||||||
description = "ID of the order that needs to be deleted",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val deleteOrderOperation = (apiOperation[Unit]("deleteOrder")
|
||||||
|
summary "Delete purchase order by ID"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("orderId").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
delete("/order/:orderId",operation(deleteOrderOperation)) {
|
||||||
|
val orderId = params.getOrElse("orderId", halt(400))
|
||||||
|
println(orderId)
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/order",
|
|
||||||
summary("Place an order for a pet"),
|
|
||||||
nickname("placeOrder"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("order"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "order placed for purchasing the pet",
|
|
||||||
dataType = DataType("Order"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val placeOrderOperation = (apiOperation[Unit]("placeOrder")
|
||||||
|
summary "Place an order for a pet"
|
||||||
|
parameters(
|
||||||
|
bodyParam[Order]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
post("/order",operation(placeOrderOperation)) {
|
||||||
|
val body = parsedBody.extract[Order]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class UserApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
protected val applicationDescription: String = "UserApi"
|
protected val applicationDescription: String = "UserApi"
|
||||||
override protected val applicationName: Option[String] = Some("user")
|
override protected val applicationName: Option[String] = Some("user")
|
||||||
|
/*
|
||||||
def swaggerToModel(cls: Class[_]) = {
|
def swaggerToModel(cls: Class[_]) = {
|
||||||
val docObj = ApiPropertiesReader.read(cls)
|
val docObj = ApiPropertiesReader.read(cls)
|
||||||
val name = docObj.getName
|
val name = docObj.getName
|
||||||
@ -27,150 +27,123 @@ class UserApi (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
Model(name, name, fields.toMap)
|
Model(name, name, fields.toMap)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
before() {
|
before() {
|
||||||
contentType = formats("json")
|
contentType = formats("json")
|
||||||
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/createWithArray",
|
|
||||||
summary("Creates list of users with given input array"),
|
|
||||||
nickname("createUsersWithArrayInput"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("createWithArray"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "List of user object",
|
|
||||||
dataType = DataType("Array[User]"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
val createUsersWithArrayInputOperation = (apiOperation[Unit]("createUsersWithArrayInput")
|
||||||
|
summary "Creates list of users with given input array"
|
||||||
|
parameters(
|
||||||
|
bodyParam[List[User]]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
post("/createWithArray",operation(createUsersWithArrayInputOperation)) {
|
||||||
|
val body = parsedBody.extract[List[User]]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/",
|
|
||||||
summary("Create user"),
|
|
||||||
nickname("createUser"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint(""),
|
|
||||||
notes("This can only be done by the logged in user."),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "Created user object",
|
|
||||||
dataType = DataType("User"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val createUserOperation = (apiOperation[Unit]("createUser")
|
||||||
|
summary "Create user"
|
||||||
|
parameters(
|
||||||
|
bodyParam[User]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
post("/",operation(createUserOperation)) {
|
||||||
|
val body = parsedBody.extract[User]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/createWithList",
|
|
||||||
summary("Creates list of users with given list input"),
|
|
||||||
nickname("createUsersWithListInput"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("createWithList"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "body",
|
|
||||||
description = "List of user object",
|
|
||||||
dataType = DataType("List[User]"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val createUsersWithListInputOperation = (apiOperation[Unit]("createUsersWithListInput")
|
||||||
|
summary "Creates list of users with given list input"
|
||||||
|
parameters(
|
||||||
|
bodyParam[List[User]]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
post("/createWithList",operation(createUsersWithListInputOperation)) {
|
||||||
|
val body = parsedBody.extract[List[User]]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
put("/:username",
|
|
||||||
summary("Updated user"),
|
|
||||||
nickname("updateUser"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("{username}"),
|
|
||||||
notes("This can only be done by the logged in user."),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "username",
|
|
||||||
description = "name that need to be deleted",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
,Parameter(name = "body",
|
|
||||||
description = "Updated user object",
|
|
||||||
dataType = DataType("User"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val updateUserOperation = (apiOperation[Unit]("updateUser")
|
||||||
|
summary "Updated user"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("username").description(""),bodyParam[User]("body").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
put("/:username",operation(updateUserOperation)) {
|
||||||
|
val username = params.getOrElse("username", halt(400))
|
||||||
|
println(username)
|
||||||
|
val body = parsedBody.extract[User]
|
||||||
|
println(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
delete("/:username",
|
|
||||||
summary("Delete user"),
|
|
||||||
nickname("deleteUser"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("{username}"),
|
|
||||||
notes("This can only be done by the logged in user."),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "username",
|
|
||||||
description = "The name that needs to be deleted",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val deleteUserOperation = (apiOperation[Unit]("deleteUser")
|
||||||
|
summary "Delete user"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("username").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
delete("/:username",operation(deleteUserOperation)) {
|
||||||
|
val username = params.getOrElse("username", halt(400))
|
||||||
|
println(username)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:username",
|
|
||||||
summary("Get user by user name"),
|
|
||||||
nickname("getUserByName"),
|
|
||||||
responseClass("User"),
|
|
||||||
endpoint("{username}"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "username",
|
|
||||||
description = "The name that needs to be fetched. Use user1 for testing.",
|
|
||||||
dataType = DataType.String,
|
|
||||||
defaultValue = None,
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val getUserByNameOperation = (apiOperation[User]("getUserByName")
|
||||||
|
summary "Get user by user name"
|
||||||
|
parameters(
|
||||||
|
pathParam[String]("username").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/:username",operation(getUserByNameOperation)) {
|
||||||
|
val username = params.getOrElse("username", halt(400))
|
||||||
|
println(username)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/login",
|
|
||||||
summary("Logs user into the system"),
|
|
||||||
nickname("loginUser"),
|
|
||||||
responseClass("String"),
|
|
||||||
endpoint("login"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
Parameter(name = "username",
|
|
||||||
description = "The user name for login",
|
|
||||||
paramType = ParamType.Query,
|
|
||||||
required = true,
|
|
||||||
allowMultiple = false,
|
|
||||||
defaultValue = None,
|
|
||||||
dataType = DataType("String"))
|
|
||||||
,Parameter(name = "password",
|
|
||||||
description = "The password for login in clear text",
|
|
||||||
paramType = ParamType.Query,
|
|
||||||
required = true,
|
|
||||||
allowMultiple = false,
|
|
||||||
defaultValue = None,
|
|
||||||
dataType = DataType("String"))
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
|
val loginUserOperation = (apiOperation[String]("loginUser")
|
||||||
|
summary "Logs user into the system"
|
||||||
|
parameters(
|
||||||
|
queryParam[String]("username").description(""),queryParam[String]("password").description(""))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/login",operation(loginUserOperation)) {
|
||||||
|
val username = params.getAs[String]("username")
|
||||||
|
println(username)
|
||||||
|
val password = params.getAs[String]("password")
|
||||||
|
println(password)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/logout",
|
|
||||||
summary("Logs out current logged in user session"),
|
|
||||||
nickname("logoutUser"),
|
|
||||||
responseClass("void"),
|
|
||||||
endpoint("logout"),
|
|
||||||
notes(""),
|
|
||||||
parameters(
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
|
||||||
}
|
val logoutUserOperation = (apiOperation[Unit]("logoutUser")
|
||||||
|
summary "Logs out current logged in user session"
|
||||||
|
parameters(
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
get("/logout",operation(logoutUserOperation)) {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package com.wordnik.client.model
|
package com.wordnik.client.model
|
||||||
|
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
case class Category (
|
case class Category (
|
||||||
id: Long,
|
id: Option[Long],
|
||||||
name: String)
|
|
||||||
|
name: Option[String]
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
package com.wordnik.client.model
|
package com.wordnik.client.model
|
||||||
|
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
case class Order (
|
case class Order (
|
||||||
id: Long,
|
id: Option[Long],
|
||||||
petId: Long,
|
|
||||||
/* Order Status */
|
petId: Option[Long],
|
||||||
status: String,
|
|
||||||
quantity: Int,
|
status: Option[String],// Order Status
|
||||||
shipDate: Date)
|
|
||||||
|
quantity: Option[Int],
|
||||||
|
|
||||||
|
shipDate: Option[Date]
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -2,14 +2,18 @@ package com.wordnik.client.model
|
|||||||
|
|
||||||
import com.wordnik.client.model.Category
|
import com.wordnik.client.model.Category
|
||||||
import com.wordnik.client.model.Tag
|
import com.wordnik.client.model.Tag
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
case class Pet (
|
case class Pet (
|
||||||
tags: List[Tag],
|
tags: Option[List[Tag]],
|
||||||
id: Long,
|
|
||||||
category: Category,
|
id: Option[Long],
|
||||||
/* pet status in the store */
|
|
||||||
status: String,
|
category: Option[Category],
|
||||||
name: String,
|
|
||||||
photoUrls: List[String])
|
status: Option[String],// pet status in the store
|
||||||
|
|
||||||
|
name: Option[String],
|
||||||
|
|
||||||
|
photoUrls: Option[List[String]]
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package com.wordnik.client.model
|
package com.wordnik.client.model
|
||||||
|
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
case class Tag (
|
case class Tag (
|
||||||
id: Long,
|
id: Option[Long],
|
||||||
name: String)
|
|
||||||
|
name: Option[String]
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -1,15 +1,21 @@
|
|||||||
package com.wordnik.client.model
|
package com.wordnik.client.model
|
||||||
|
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
case class User (
|
case class User (
|
||||||
id: Long,
|
id: Option[Long],
|
||||||
lastName: String,
|
|
||||||
phone: String,
|
lastName: Option[String],
|
||||||
username: String,
|
|
||||||
email: String,
|
phone: Option[String],
|
||||||
/* User Status */
|
|
||||||
userStatus: Int,
|
username: Option[String],
|
||||||
firstName: String,
|
|
||||||
password: String)
|
email: Option[String],
|
||||||
|
|
||||||
|
userStatus: Option[Int],// User Status
|
||||||
|
|
||||||
|
firstName: Option[String],
|
||||||
|
|
||||||
|
password: Option[String]
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ class ScalatraBootstrap extends LifeCycle {
|
|||||||
context mount (new {{className}}, "/{{name}}/*")
|
context mount (new {{className}}, "/{{name}}/*")
|
||||||
{{/apis}}
|
{{/apis}}
|
||||||
|
|
||||||
context mount (new ResourcesApp, "/*")
|
context mount (new ResourcesApp, "/api-docs/*")
|
||||||
} catch {
|
} catch {
|
||||||
case e: Throwable => e.printStackTrace()
|
case e: Throwable => e.printStackTrace()
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ class {{className}} (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
protected val applicationDescription: String = "{{className}}"
|
protected val applicationDescription: String = "{{className}}"
|
||||||
override protected val applicationName: Option[String] = Some("{{baseName}}")
|
override protected val applicationName: Option[String] = Some("{{baseName}}")
|
||||||
|
/*
|
||||||
def swaggerToModel(cls: Class[_]) = {
|
def swaggerToModel(cls: Class[_]) = {
|
||||||
val docObj = ApiPropertiesReader.read(cls)
|
val docObj = ApiPropertiesReader.read(cls)
|
||||||
val name = docObj.getName
|
val name = docObj.getName
|
||||||
@ -28,7 +28,7 @@ class {{className}} (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
|
|
||||||
Model(name, name, fields.toMap)
|
Model(name, name, fields.toMap)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
before() {
|
before() {
|
||||||
contentType = formats("json")
|
contentType = formats("json")
|
||||||
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
response.headers += ("Access-Control-Allow-Origin" -> "*")
|
||||||
@ -36,49 +36,49 @@ class {{className}} (implicit val swagger: Swagger) extends ScalatraServlet
|
|||||||
{{#operations}}
|
{{#operations}}
|
||||||
{{#operation}}
|
{{#operation}}
|
||||||
{{newline}}
|
{{newline}}
|
||||||
{{httpMethod}}("{{path}}",
|
|
||||||
summary("{{{summary}}}"),
|
|
||||||
nickname("{{nickname}}"),
|
|
||||||
responseClass("{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}void{{/returnType}}"),
|
|
||||||
endpoint("{{basePart}}"),
|
|
||||||
notes("{{{notes}}}"),
|
|
||||||
parameters(
|
|
||||||
{{#allParams}}
|
|
||||||
{{#queryParameter}}
|
|
||||||
Parameter(name = "{{paramName}}",
|
|
||||||
description = "{{{description}}}",
|
|
||||||
paramType = ParamType.Query,
|
|
||||||
required = {{required}},
|
|
||||||
allowMultiple = {{allowMultiple}},
|
|
||||||
{{#allowableValues}}allowableValues = {{{allowableValues}}},{{newline}}{{/allowableValues}}
|
|
||||||
defaultValue = {{#defaultValue}}Some({{{defaultValue}}}){{/defaultValue}}{{^defaultValue}}None{{/defaultValue}},
|
|
||||||
dataType = DataType("{{dataType}}"))
|
|
||||||
{{/queryParameter}}
|
|
||||||
{{#pathParameter}}
|
|
||||||
Parameter(name = "{{paramName}}",
|
|
||||||
description = "{{{description}}}",
|
|
||||||
dataType = DataType.String,
|
|
||||||
{{#allowableValues}}allowableValues = {{{allowableValues}}},{{newline}}{{/allowableValues}}
|
|
||||||
defaultValue = {{#defaultValue}}Some({{{defaultValue}}}){{/defaultValue}}{{^defaultValue}}None{{/defaultValue}},
|
|
||||||
paramType = ParamType.Path)
|
|
||||||
{{/pathParameter}}
|
|
||||||
{{#headerParameter}}
|
|
||||||
Parameter(name = "{{paramName}}",
|
|
||||||
description = "{{{description}}}",
|
|
||||||
dataType = DataType("{{dataType}}"),
|
|
||||||
paramType = ParamType.Header)
|
|
||||||
{{/headerParameter}}
|
|
||||||
{{#bodyParameter}}
|
|
||||||
Parameter(name = "{{paramName}}",
|
|
||||||
description = "{{{description}}}",
|
|
||||||
dataType = DataType("{{dataType}}"),
|
|
||||||
paramType = ParamType.Body)
|
|
||||||
{{/bodyParameter}}{{#hasMore}},{{/hasMore}}
|
|
||||||
{{/allParams}}
|
|
||||||
)) {
|
|
||||||
|
|
||||||
// do something
|
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}}
|
||||||
|
{{#hasMore}},{{/hasMore}}
|
||||||
|
{{/allParams}})
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
{{httpMethod}}("{{path}}",operation({{nickname}}Operation)) {
|
||||||
|
{{#allParams}}
|
||||||
|
{{#pathParameter}}
|
||||||
|
val {{paramName}} = params.getOrElse("{{paramName}}", halt(400))
|
||||||
|
{{/pathParameter}}
|
||||||
|
|
||||||
|
{{#queryParameter}}
|
||||||
|
val {{paramName}} = params.getAs[{{dataType}}]("{{paramName}}")
|
||||||
|
{{/queryParameter}}
|
||||||
|
|
||||||
|
{{#headerParameter}}
|
||||||
|
val {{paramName}} = request.getHeader("{{paramName}}")
|
||||||
|
{{/headerParameter}}
|
||||||
|
|
||||||
|
{{#bodyParameter}}
|
||||||
|
val {{paramName}} = parsedBody.extract[{{dataType}}]
|
||||||
|
{{/bodyParameter}}
|
||||||
|
println({{paramName}})
|
||||||
|
{{/allParams}}
|
||||||
}
|
}
|
||||||
|
|
||||||
{{/operation}}
|
{{/operation}}
|
||||||
{{/operations}}
|
{{/operations}}
|
||||||
}
|
}
|
@ -4,15 +4,12 @@ package {{package}}
|
|||||||
{{/imports}}
|
{{/imports}}
|
||||||
|
|
||||||
{{#models}}
|
{{#models}}
|
||||||
import scala.reflect.BeanProperty
|
|
||||||
|
|
||||||
{{#model}}
|
{{#model}}
|
||||||
case class {{classname}} (
|
case class {{classname}} (
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
|
|
||||||
{{#description}}/* {{description}} */
|
{{name}}: {{#isNotRequired}}Option[{{/isNotRequired}}{{datatype}}{{#isNotRequired}}]{{/isNotRequired}} {{#hasMore}},{{/hasMore}}{{#description}} // {{description}}{{/description}}{{newline}}
|
||||||
{{/description}}
|
|
||||||
{{name}}: {{datatype}}{{#hasMore}},{{newline}} {{/hasMore}}
|
|
||||||
{{/vars}}
|
{{/vars}}
|
||||||
)
|
)
|
||||||
{{/model}}
|
{{/model}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user