我是游戏框架的新手。我正在计划一个大型项目,该项目将为其他应用程序公开许多端点,以便它们可以与之集成;我们是否有任何可以在 playframework 环境中使用的扩展或库,例如 django-piston?
4 回答
无需在 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))
}
阅读本文以获取有关路由和控制器的更多详细信息。
然后使用Anorm或其他一些库来实现您的模型以创建您的模型。
实际上 Play Framework 是一个全栈 Web 框架。使用 Netty/Akka-http 作为服务器,它不需要容器来运行。
使用 sbt 构建您的项目,您可以添加第三方库作为依赖项,它们都使用 Scala 和 Java 编写。
如果只是 RESTFul API,只需关注 conf/routes 并定义您的 url,然后完成您的业务逻辑。可在此处找到 Play Framework 的文档。
在 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 代替字符串。如果您想“提供”其他应用程序一些具有标准和结构的数据,这在现实世界的示例中是必不可少的。不想在这里详细介绍,但是 play 对 Json 有很大的支持,你可以在这里阅读更多。
还有什么? 我想在这里提到的另外两个主题:
模型:您可以在app/models
文件夹中定义模型。这些模型负责与 DB 或其他外部资源进行通信;比如S3。
视图:如果您想从您的 api 制作一个完整的堆栈应用程序,请在app/views
文件夹中定义您的视图文件。如果要使用任何脚本语言和样式表,则需要在/public
文件夹中定义它们。