安裝 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 上。瀏覽器