【发布时间】:2011-07-24 08:51:59
【问题描述】:
我是 playframework 的新手。我正在计划一个大型项目,该项目将为其他应用程序公开许多端点,以便它们可以与之集成;我们是否有任何可以在 playframework 环境中使用的扩展程序或库,例如 django-piston?
【问题讨论】:
标签: playframework django-piston
我是 playframework 的新手。我正在计划一个大型项目,该项目将为其他应用程序公开许多端点,以便它们可以与之集成;我们是否有任何可以在 playframework 环境中使用的扩展程序或库,例如 django-piston?
【问题讨论】:
标签: playframework django-piston
无需在 Play! 上安装扩展程序,最简单的是使用 REST API,一切就绪! 看看freedompeace给的教程,有问题再回来。
【讨论】:
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 或其他一些库来实现您的模型以创建您的模型。
【讨论】:
实际上 Play Framework 是一个全栈 Web 框架。使用 Netty/Akka-http 作为服务器,它不需要容器来运行。
使用 sbt 来构建您的项目,您可以添加第三方库作为依赖项,同时使用 Scala 和 Java 编写。
如果只是 RESTFul API,只需关注 conf/routes 并定义您的 url,然后完成您的业务逻辑。 Play 框架的文档可以在here找到。
【讨论】:
在 playframewrork 中,要使 API 执行以下操作:
conf/routes 来编写您的路线。您可以在此处定义常用的 HTTP 路由(GET、PUT、POST 等)。每个路由都会有一个到控制器的链接,例如,以下路由由 Hello 控制器提供服务: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 代替字符串。如果您想“提供”其他应用程序一些具有标准和结构的数据,这在现实世界的示例中是必不可少的。这里不想过多赘述,但是play对Json的支持很大,可以read more here。
还有什么? 我想在这里提到的另外两个主题:
模型:您可以在app/models 文件夹中定义模型。这些模型负责与 DB 或其他外部资源进行通信;比如S3。
视图:如果您想从您的 api 创建一个完整的堆栈应用程序,请在 app/views 文件夹中定义您的视图文件。如果您想使用任何脚本语言和样式表,则需要在/public 文件夹中定义它们。
【讨论】: