【问题标题】:RESTful API for playframework project用于 playframework 项目的 RESTful API
【发布时间】:2011-07-24 08:51:59
【问题描述】:

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

【问题讨论】:

    标签: playframework django-piston


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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 或其他一些库来实现您的模型以创建您的模型。

      【讨论】:

        【解决方案3】:

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

        使用 sbt 来构建您的项目,您可以添加第三方库作为依赖项,同时使用 Scala 和 Java 编写。

        如果只是 RESTFul API,只需关注 conf/routes 并定义您的 url,然后完成您的业务逻辑。 Play 框架的文档可以在here找到。

        【讨论】:

          【解决方案4】:

          在 playframewrork 中,要使 API 执行以下操作:

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

          GET /hello Application.controllers.Hello.saySomething

          1. 定义控制器:然后,在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 文件夹中定义它们。

          【讨论】:

            猜你喜欢
            • 2017-11-14
            • 2016-07-17
            • 2014-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多