controller 扩展了后头,controller 扩展领悟后

controller 增加了之后,controller 增加了之后

安装 phoenix framework

安装 phoenix 很简单:

mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

安装之后,mix 的子命令中就多了 phoenix 相关的剧情了。

$ mix help | grep phoenix
$ mix local.phoenix     # Updates Phoenix locally
$ mix phoenix.new       # Creates a new Phoenix v1.2.1 application

安装 phoenix framework

安装 phoenix 很简单:

mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

安装之后,mix 的子命令中就多了 phoenix 相关的始最后。

$ mix help | grep phoenix
$ mix local.phoenix     # Updates Phoenix locally
$ mix phoenix.new       # Creates a new Phoenix v1.2.1 application

phoenix 工程介绍

接下去,我们创造三个 phoenix 的工程。

$ mix phoenix.new phoenix_api --no-ecto     # 本示例中不带数据库的操作,所以加上 --no-ecto 参数

$ cd phoenix_api       # 创建完之后进入工程目录
$ tree -L 1 .          # 查看目录结构
.
├── README.md
├── _build
├── brunch-config.js
├── config
├── deps
├── lib
├── mix.exs
├── mix.lock
├── node_modules
├── package.json
├── priv
├── test
└── web          # 主要的代码都要这里

phoenix 是个总体的 web 框架,包罗controller,view以及model,template等等,但是大家那里只用 phoenix 作为
api 的后端,所从前端相关的内容就不介绍了。 用 phoenix 作为 api
的后端,首要关注 web/router.ex 文件和 web/controllers
文件夹,其他的件暂且不要理会。

phoenix 工程介绍

接下去,大家创设一个 phoenix 的工程。

$ mix phoenix.new phoenix_api --no-ecto     # 本示例中不带数据库的操作,所以加上 --no-ecto 参数

$ cd phoenix_api       # 创建完之后进入工程目录
$ tree -L 1 .          # 查看目录结构
.
├── README.md
├── _build
├── brunch-config.js
├── config
├── deps
├── lib
├── mix.exs
├── mix.lock
├── node_modules
├── package.json
├── priv
├── test
└── web          # 主要的代码都要这里

phoenix 是个全体的 web 框架,包括controller,view以及model,template等等,不过咱们这里只用 phoenix 作为
api 的后端,所以前端相关的始末就不介绍了。 用 phoenix 作为 api
的后端,重要关怀 web/router.ex 文件和 web/controllers
文件夹,其余的件暂且不要理会。

创建 http api

接下去,使用 phoenix 实际创设二个总结的 api 来感受一下。 首先,扩展3个controller,在那之中是api的切实落实代码

defmodule PhoenixApi.HelloController do
  use PhoenixApi.Web, :controller

  def hello(conn, _params) do
    json conn, %{"hello": "world"}
  end
end

新增的 controller 路径: web/controllers/hello_controller.ex

controller 扩大了今后,再在 web/router.ex 中追加1个对准 controller 中
hello 方法的路由, web/router.ex 已经有了针对 api 的 pipeline,
只要扩充如下代码即可。

scope "/api", PhoenixApi do
  pipe_through :api

  get "/hello", HelloController, :hello
end

下一场运行 phoenix server, 在工程根目录下执行:

$ mix phoenix.server
Compiling 7 files (.ex)
[info] Running PhoenixApi.Endpoint with Cowboy using http://localhost:4000
26 Aug 16:43:04 - info: compiled 6 files into 2 files, copied 3 in 1.2 sec

最后在浏览器中访问 http://localhost:4000/api/hello
能够看看重返的JSON结果

{
  "hello": "world"
}

创建 http api

接下去,使用 phoenix 实际创设一个回顾的 api 来感受一下。 首先,扩充2个controller,个中是api的具体贯彻代码

defmodule PhoenixApi.HelloController do
  use PhoenixApi.Web, :controller

  def hello(conn, _params) do
    json conn, %{"hello": "world"}
  end
end

新增的 controller 路径: web/controllers/hello_controller.ex

澳门永利平台娱乐,controller 增添了未来,再在 web/router.ex 中加进三个针对性 controller 中
hello 方法的路由, web/router.ex 已经有了针对性 api 的 pipeline,
只要增加如下代码即可。

scope "/api", PhoenixApi do
  pipe_through :api

  get "/hello", HelloController, :hello
end

下一场运行 phoenix server, 在工程根目录下执行:

$ mix phoenix.server
Compiling 7 files (.ex)
[info] Running PhoenixApi.Endpoint with Cowboy using http://localhost:4000
26 Aug 16:43:04 - info: compiled 6 files into 2 files, copied 3 in 1.2 sec

末尾在浏览器中走访 http://localhost:4000/api/hello
能够看出重临的JSON结果

{
  "hello": "world"
}

总结

Web app的内外端分离是可行性,phoenix framework 即便是近似 Ro奥迪Q5 的全栈 web
framework, 只用它来开发api也是未可厚非的取舍。 用它来支付
api,大家能够如今不关切 view 和 template 部分,将重庆大学放在 controller 和
router 上。

来源:http://blog.iotalabs.io/

总结

Web app的前后端分离是大势,phoenix framework 即使是近乎 RoLacrosse 的全栈 web
framework, 只用它来支付api也是情有可原的取舍。 用它来开发
api,我们得以暂且不关心 view 和 template 部分,将根本放在 controller 和
router 上。

来源:http://blog.iotalabs.io/