我是playframework的新手。我正在计划一个大型项目,它将为其他应用程序公开许多端点,以便它们可以与之集成;我们是否有可以在playframework环境中使用的任何扩展或库,如django-piston?
答案 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,请执行以下操作:
conf/routes
编写路线。您可以在此处定义常用的HTTP路由(GET,PUT,POST等)。每个路由都有一个指向控制器的链接,例如,以下路由由Hello控制器提供: GET /hello Application.controllers.Hello.saySomething
Hello.scala
文件夹中创建app/controllers
文件。现在在控制器中编写方法,例如: 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
文件夹中定义它们。