在scala中发布Play框架时遇到问题

时间:2015-12-22 12:20:32

标签: scala rest playframework

您好我是Play的新手,甚至是Scala,我似乎无法将Json正确地发布到服务器上。

我正在尝试实现一个基本的REST API。我有工作,但我似乎无法发布数据,我不知道我哪里出错了

这是我的控制器类

  class Items extends Controller {

  implicit val itemReads = Json.reads[Item]
  implicit val itemWrites = Json.writes[Item]


  // GET: /api/items
  def index = Action {
    println("Items Index")
    val items = Json.arr(Item.getItems)
    Ok(items)
  }

  // POST: /api/items
  def create = Action(BodyParsers.parse.json) {
    request => val item = request.body.validate[Item]
      item.fold(errors => {BadRequest(Json.obj("error" -> JsError.toJson(errors)))}, result => {Created})
  }

  // GET: /api/items/:id
  def get(id: Int) = Action {
    println("Here is item " + id)
    val item = Item.findById(id)
    if (item != null) {
      Ok(Json.toJson(item))
    } else {
      NotFound(Json.obj("error" -> 404, "message" -> "Item Not Found"))
    }
  }
}

这是我发布数据的javascript函数:

function testCreateAnItem() {
$.ajax({
    url: "http://localhost:9000/api/items",
    type: 'POST',
    contentType: "application/json",
    data: {id:7, name:"NewGnome"},
    success: function(data) {console.log("Success: Created " + data.name)},
    error: function() {console.log("Error: Couldn't create new item")}
})
}

我得到的错误是:

对于请求' POST / api / items' [无效的Json:无法识别的令牌' id':期待(' true',' false'或' null')  在[来源:[B @ 4fa5f73d; line:1,column:4]]

我确定我犯了一个愚蠢的错误,但我们将非常感谢任何帮助。

感谢您的时间

更新:

这是我的项目类

case class Item(id: Int, name: String)

0 个答案:

没有答案