playframework项目的RESTful API

playframework项目的RESTful API,playframework,django-piston,Playframework,Django Piston,我不熟悉游戏框架。我正在计划一个大项目,该项目将为其他应用程序公开大量端点,以便它们能够与之集成;我们是否有可以在playframework环境中使用的任何扩展或库,如django活塞?无需在Play上安装扩展!,最简单的事情就是使用RESTAPI,一切都准备好了! 请阅读freedompeace提供的教程,如果您有任何疑问,请返回。Play framework是在Netty之上构建的,可以轻松编写HTTP服务,无论这些服务是否响应HTML、JSON、XML。创建服务所要做的是在conf/rou

我不熟悉游戏框架。我正在计划一个大项目,该项目将为其他应用程序公开大量端点,以便它们能够与之集成;我们是否有可以在playframework环境中使用的任何扩展或库,如django活塞?

无需在Play上安装扩展!,最简单的事情就是使用RESTAPI,一切都准备好了!
请阅读freedompeace提供的教程,如果您有任何疑问,请返回。

Play framework是在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))
}
请阅读本文以了解更多有关的详细信息


然后使用或其他库来实现您的模型以创建您的模型。

实际上,Play Framework是一个全堆栈web框架。使用Netty/akkahttp作为服务器,它不需要容器来运行

使用sbt来构建您的项目,您可以添加第三部分LIB作为依赖项,这些依赖项都是用Scala和Java编写的


如果只是RESTfulAPI,只需关注conf/routes并定义url,然后完成业务逻辑。可以在PlayFramework中找到Play Framework的文档。

要制作API,请执行以下操作:

  • 定义路由:转到
    conf/routes
    编写路由。您可以在这里定义常见的HTTP路由(GET、PUT、POST等)。每个路由都有一个到控制器的链接,例如,以下路由由Hello控制器提供服务:
  • GET/hello Application.controllers.hello.saything

  • 定义控制器:然后,在
    app/controllers
    文件夹中创建
    Hello.scala
    文件。现在在控制器中编写方法,例如:
  • defsaysomething=Action{Ok(“我在打招呼”)}

    如果你运行你的应用程序(
    sbt compile run
    ),你应该在
    localhost:9000
    上看到
    我在说你好
    。此外,您还可以使用Json或XML代替字符串。如果您想“提供”其他应用程序一些具有标准和结构的数据,这在现实世界的示例中是必不可少的。我不想在这里详细介绍,但是play对Json有很好的支持,你可以

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

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

    视图:如果要从api生成完整堆栈应用程序,请在
    app/Views
    文件夹中定义视图文件。如果要使用任何脚本语言和样式表,则需要在
    /public
    文件夹中定义它们