package models case class Contact(firstName: String, lastName: String, age: Int) object Contact { val contacts = Set( Contact("Robby", "Pelssers", 35), Contact("Davy", "Pelssers", 35), Contact("Lindsey", "Pelssers", 9) ) def findAll = this.contacts.toList.sortBy(_.firstName) }Next let us take a look at a simple controller returning contacts in JSON format
package controllers import play.api.mvc.{ Action, Controller } import play.api.libs.json.Json._ import models.Contact object Contacts extends Controller { def toJSON = Action { implicit request => val contacts = Contact.findAll val json = toJson( contacts.map( contact => toJson( Map("firstName" -> toJson(contact.firstName), "lastName" -> toJson(contact.lastName), "age" -> toJson(contact.age)) ) ) ) Ok(json) } }
Now it's a matter of mapping a URL to our controller method.
GET /contacts.json controllers.Contacts.toJSONNow let's see if our response looks ok by using curl
$ curl --request GET --include http://localhost:9000/contacts.json HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: 160 [{"firstName":"Davy","lastName":"Pelssers","age":35},{"firstName":"Lindsey","lastName":"Pelssers","age":9},{"firstName":"Robby","lastName":"Pelssers","age":35}]
No comments:
Post a Comment