phoenix 開發API系列(一)創建簡單的http api


安裝 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 文件夾,其他的件暫時不用理會。

創建 http api

接下來,使用 phoenix 實際創建一個簡單的 api 來感受一下。 首先,增加一個 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 雖然是類似 RoR 的全棧 web framework, 只用它來開發api也是不錯的選擇。 用它來開發 api,我們可以暫時不關心 view 和 template 部分,將重點放在 controller 和 router 上。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM