安装 phoenix 很简单:前端
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
安装以后,mix 的子命令中就多了 phoenix 相关的内容了。node
$ mix help | grep phoenix $ mix local.phoenix # Updates Phoenix locally $ mix phoenix.new # Creates a new Phoenix v1.2.1 application
接下来,咱们建立一个 phoenix 的工程。git
$ 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 文件夹,其余的件暂时不用理会。github
接下来,使用 phoenix 实际建立一个简单的 api 来感觉一下。 首先,增长一个 controller,其中是api的具体实现代码web
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, 只要增长以下代码便可。json
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结果api
{ "hello": "world" }
Web app的先后端分离是趋势,phoenix framework 虽然是相似 RoR 的全栈 web framework, 只用它来开发api也是不错的选择。 用它来开发 api,咱们能够暂时不关心 view 和 template 部分,将重点放在 controller 和 router 上。浏览器