如何使用Elixir和Phoenix快速入门构建CRUD REST API
這篇文章將展示如何使用Elixir和Phoenix框架構(gòu)建REST API。 重點(diǎn)將是為持久化到Postgres數(shù)據(jù)庫(kù)后端的模型提供CRUD(創(chuàng)建,讀取,更新,刪除)端點(diǎn)。 我應(yīng)該警告你; 這是一個(gè)簡(jiǎn)單的例子。 但是,希望它可以幫助您在Elixir和Phoenix的旅途中前進(jìn)。
附帶說(shuō)明 :我來(lái)自使用Akka和Scala構(gòu)建REST API。 與Akka相似,Elixir具有Erlang的基礎(chǔ)。 我喜歡異步處理的Erlang模型。 一個(gè)人怎么可能不是? 好吧,分布式異步系統(tǒng)很難調(diào)試,但是我離題了。 就像我說(shuō)的那樣,我仍然喜歡這種模型,因?yàn)樗梢詳U(kuò)展。 很高興回到Elixir的松散類型語(yǔ)言。
一,安裝要求
Elixir Hex安裝 mix local.hex
其次,讓我們建立
新的Phoenix Framework應(yīng)用程序 mix phoenix.new api_spike
根據(jù)需要命名api_spike。 可能會(huì)要求您安裝依賴項(xiàng)。 我說(shuō)是! (參考:上面第一部分的步驟4)
背景:如果這不起作用,請(qǐng)檢查conf / dev.exs文件中的Postgres設(shè)置。 默認(rèn)連接使用用戶名postgres和密碼postgres 。 請(qǐng)參閱上面的步驟5。
注意: phoenix.gen任務(wù)正在指定json。 如果使用phoenix.gen.html,也可以構(gòu)建HTML視圖。 當(dāng)我第一次嘗試Phoenix時(shí),這讓我很困惑。
鳳凰REST API scope "/api", ApiSpike dopipe_through :apiresources "/users", UserController, except: [:new, :edit]end
通過(guò)發(fā)出以下命令更新數(shù)據(jù)庫(kù):
mix ecto.migrate第三,嘗試一下
現(xiàn)在,我們可以進(jìn)行一些調(diào)用以執(zhí)行CRUD操作,例如create:
curl -H "Content-Type: application/json" -X POST -d '{"user": {"fullname": "Todd", "email": "phoenix@apiexample.com", "age": 19}}' http://localhost:4000/api/users現(xiàn)在讀取:
curl -H "Content-Type: application/json" http://localhost:4000/api/userscurl -H "Content-Type: application/json" http://localhost:4000/api/users/1更新:
Phoenix框架更新REST調(diào)用
curl -H "Content-Type: application/json" -X PUT -d '{"user": {"fullname": "Not Todd", "email": "phoenix@apiexample.com", "age": 43}}' http://localhost:4000/api/users/1最后,刪除:
curl -H "Content-Type: application/json" -X DELETE http://localhost:4000/api/users/1吃喝玩樂(lè)跳舞
我確實(shí)將此帖子稱為“快速入門(mén)”。 旨在幫助您開(kāi)始使用Phoenix構(gòu)建REST API,并更輕松地使用Elixir。 如果您需要更多詳細(xì)信息,請(qǐng)?jiān)赥witter上與我聯(lián)系或在下面發(fā)表評(píng)論。
翻譯自: https://www.javacodegeeks.com/2016/02/build-crud-rest-apis-elixir-phoenix-quick-start.html
總結(jié)
以上是生活随笔為你收集整理的如何使用Elixir和Phoenix快速入门构建CRUD REST API的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux压缩解压缩常用命令(Linux
- 下一篇: app engine_App Engin