2011-07-24 38 views
1

我是新來的playframework。我正在計劃一個大型項目,它將公開其他應用程序的端點數目,以便它們可以與其整合;我們是否有像django-piston這樣的可以在playframework環境中使用的擴展或庫?playframework項目的RESTful API

回答

0

無需在Play!上安裝擴展程序,最簡單的方法就是使用REST API並且一切就緒! 看看freedompeace給出的教程,當你有問題時再回來。

0

Play框架建立在Netty的基礎之上,以便輕鬆編寫HTTP服務,如果這些響應使用HTML,JSON和XML,則無關緊要。你需要做什麼來創建服務就是像這樣在conf/routes中爲你的應用程序資源設置路由。

GET  /api/projects     controllers.ProjectController.index 
POST /api/projects     controllers.ProjectController.create 
GET  /api/projects/:id    controllers.ProjectController.show(id: Long) 
PUT  /api/projects/:id    controllers.ProjectController.update(id: Long) 
DELETE /api/projects/:id    controllers.ProjectController.delete(id: Long) 

然後實現與像這樣的控制器方法:

def index() = Action { implicit request => 
    Ok(Json.toJson(Project.findAll(request.queryString)) 
} 

routing and controllers閱讀此瞭解更多詳情。

然後使用Anorm或其他一些庫來實現您的模型來創建模型。

0

其實Play Framework是一個完整的堆棧web框架。使用Netty/Akka-http作爲服務器,它不需要容器來運行。

隨着sbt構建您的項目,您可以添加第三部分庫作爲依賴項,同時在Scala和Java中編寫。

如果只是RESTFul API,只關注conf/routes並定義您的url,那麼完成您的業務邏輯。 Play Framework的文檔可以在here找到。

0

在playframewrork,使一個API執行以下操作:

  1. 定義路線:進入conf/routes寫你的路線。你可以在這裏定義通常的HTTP路由(GET,PUT,POST等)。每個路由將具有鏈接到控制器,例如,下面的路線由你好控制器服務:

GET /hello Application.controllers.Hello.saySomething

  • 定義一個控制器:然後,使app/controllers文件夾中的Hello.scala文件。現在寫的方法在控制器內,如:
  • def saySomething = Action {Ok("Im saying hello")}

    如果然後運行你的應用程序(sbt compile run),你應該在localhost:9000看到I'm saying hello。此外,您可以使用Json或XML而不是字符串。如果您想爲其他應用程序提供一些具有標準和結構的數據,這對現實世界中的示例至關重要。不想在這裏進行大量的交易,但是對Json有很大的支持,你可以read more here

    還有什麼? 另外兩個主題,我想在這裏提到:

    模式:您可以app/models文件夾定義您的模型。這些模型負責與DB或其他外部來源交談;如S3。

    查看:如果您想從api製作完整的堆棧應用程序,請在app/views文件夾中定義您的視圖文件。如果你想使用任何腳本語言和樣式表,那麼你需要在/public文件夾中定義它們。