用于playframework项目的RESTful API

时间:2011-07-24 08:52:00

标签: playframework django-piston

我是playframework的新手。我正在计划一个大型项目,它将为其他应用程序公开许多端点,以便它们可以与之集成;我们是否有可以在playframework环境中使用的任何扩展或库,如django-piston?

4 个答案:

答案 0 :(得分:0)

无需在Play上安装扩展程序!最简单的方法是使用REST API,一切准备就绪! 看看freedompeace给出的教程,当你有问题时回来。

答案 1 :(得分: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或其他库来实现模型以创建模型。

答案 2 :(得分:0)

实际上Play Framework是一个完整的堆栈Web框架。使用Netty / Akka-http作为服务器,它不需要运行容器。

使用sbt构建项目,您可以添加第三部分库作为依赖项,并使用Scala和Java编写。

如果只是RESTFul API,只关注conf / routes并定义你的url,那么就完成你的业务逻辑。可以找到Play框架文档here

答案 3 :(得分:0)

在playframewrork中,要创建API,请执行以下操作:

  1. 定义路线:转到conf/routes编写路线。您可以在此处定义常用的HTTP路由(GET,PUT,POST等)。每个路由都有一个指向控制器的链接,例如,以下路由由Hello控制器提供:
  2. GET /hello Application.controllers.Hello.saySomething

    1. 定义控制器:然后,在Hello.scala文件夹中创建app/controllers文件。现在在控制器中编写方法,例如:
    2. def saySomething = Action {Ok("Im saying hello")}

      如果您运行了应用(sbt compile run),则应在I'm saying hello看到localhost:9000。您还可以使用Json或XML代替字符串。如果您想要“提供”其他应用程序某些具有标准和结构的数据,这在现实世界的示例中至关重要。不想在这里讨论多少detials,但是游戏对Json有很大的支持,你可以read more here

      还有什么? 我想在此提及另外两个主题:

      模型:您可以在app/models文件夹中定义模型。这些模型负责与DB或其他外部源进行通信;比如S3。

      观看次数:如果您想从api创建完整的堆栈应用程序,请在app/views文件夹中定义您的视图文件。如果要使用任何脚本语言和样式表,则需要在/public文件夹中定义它们。