ruby elixir

这篇文章将展示如何使用Elixir和Phoenix框架构建REST API。 重点将是为持久化到Postgres数据库后端的模型提供CRUD(创建,读取,更新,删除)端点。 我应该警告你; 这是一个简单的例子。 但是,希望它可以帮助您在Elixir和Phoenix的旅程中前进。

附带说明 :我来自使用Akka和Scala构建REST API。 与Akka相似,Elixir具有Erlang的基础。 我喜欢异步处理的Erlang模型。 一个人怎么可能不是? 好吧,分布式异步系统很难调试,但是我离题了。 就像我说的那样,我仍然喜欢这种模型,因为它可以扩展。 很高兴回到Elixir中的松散类型语言。

一,安装要求

  1. 安装Elixir(详细信息:http://elixir-lang.org/install.html。请按照以下说明进行操作,因为其中包含Erlang。我使用自制软件进行安装)
  2. 通过在终端中运行来安装Hex:

    Elixir Hex安装

    mix local.hex
  3. 安装Phoenix:
    mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
  4. 也许安装Node.js作为资产管理的依赖项。 请参见http://www.phoenixframework.org/docs/installation上的“ node.js”部分
  5. 安装Postgres。 我在Mac上使用Postgres.app。 确保postgres用户的密码为postgres

其次,让我们建立

  1. 在终端窗口中,通过发出以下命令来创建基准应用程序:

    新的Phoenix Framework应用程序

    mix phoenix.new api_spike

    根据需要命名api_spike。 可能会要求您安装依赖项。 我说是! (参考:上面第一部分的步骤4)

  2. 进入新的api_spike目录:
    cd api_spike
  3. 创建用于该应用程序的Postgres数据库:
    mix ecto.create

    背景:如果这不起作用,请检查conf / dev.exs文件中的Postgres设置。 默认连接使用用户名postgres和密码postgres 。 请参阅上面的步骤5。

  4. 生成一个模型并免费获得大量其他东西:
    mix phoenix.gen.json User users fullname:string email:string age:integer

    注意: phoenix.gen任务正在指定json。 如果使用phoenix.gen.html,也可以构建HTML视图。 当我第一次尝试Phoenix时,这让我很困惑。

  5. 打开web / router.ex文件,取消注释api范围,并为上一步中新生成的UserController添加新行。 它看起来应该像这样:

    凤凰REST API

    scope "/api", ApiSpike dopipe_through :apiresources "/users", UserController, except: [:new, :edit]end
  6. 通过发出以下命令更新数据库:

    mix ecto.migrate
  7. 做完了 启动凤凰!
    mix phoenix.server

第三,尝试一下

现在,我们可以进行一些调用以执行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

现在读取:

curl -H "Content-Type: application/json" http://localhost:4000/api/users
curl -H "Content-Type: application/json" http://localhost:4000/api/users/1

更新:

Phoenix框架更新REST调用

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

吃喝玩乐跳舞

我确实将此帖子称为“快速入门”。 旨在帮助您开始使用Phoenix构建REST API,并更轻松地使用Elixir。 如果您需要更多详细信息,只需在Twitter上与我联系或在下面发表评论。

翻译自: https://www.javacodegeeks.com/2016/02/build-crud-rest-apis-elixir-phoenix-quick-start.html

ruby elixir

ruby elixir_如何使用Elixir和Phoenix快速入门构建CRUD REST API相关推荐

  1. 如何使用Elixir和Phoenix快速入门构建CRUD REST API

    这篇文章将展示如何使用Elixir和Phoenix框架构建REST API. 重点将是为持久化到Postgres数据库后端的模型提供CRUD(创建,读取,更新,删除)端点. 我应该警告你: 这是一个简 ...

  2. AngularJS快速入门指南15:API

    API即Application Programming Interface(应用程序接口). AngularJS全局API AngularJS全局API是一组全局JavaScript函数,用来进行一些 ...

  3. Flex 3快速入门: 构建高级用户界面 添加拖放支持

    在典型的可视化开发环境中,你能够在应用程序中选中并且拖动一个对象在屏幕中来回移动.  Flex Drag and Drop管理器能够让用户选中一个对象,比如List控件的一个元素,或者一个控件比如Im ...

  4. 【重温SSM框架系列】1 - Spring快速入门(配置文件及API详解)

    Spring快速入门 Spring是什么 Spring发展历史 Spring的优势 Spring的开发步骤 没有Spring的时候的开发步骤 使用Spring的开发步骤 Spring配置文件(appl ...

  5. Keras functional API快速入门

    2019独角兽企业重金招聘Python工程师标准>>> Keras functional API快速入门 The Keras functional API is the way to ...

  6. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  7. http协议 服务器主动下发,HTTP协议快速入门指南

    看完下面的文章,回答这几个问题 常用的HTTP方法有哪些 GET方法与POST方法的区别 HTTP请求报文与响应报文格式 常见的HTTP相应状态码 HTTP1.1版本新特性 常见HTTP首部字段 HT ...

  8. qq位置如何用启动百度地图定位服务器,腾讯位置服务API快速入门

    前言 之前项目有个需求,在网页上显示微信发送过来的位置信息,该开始想用百度地图,后来发现腾讯地图相对简单一点 快速入门 申请Key 引入js 把###替换成你申请的key 定义容器 设置好宽高度 设置 ...

  9. 目录导航《100天精通Python丨快速入门到黑科技》

    文章目录 一.100 天精通 Python 丨基础知识篇 基础知识篇 -- 01.C 站最全 Python 标准库总结 基础知识篇 -- 02.Python 和 Pycharm(语言特点.学习方法.工 ...

最新文章

  1. asp.net表单提交方法GET\POST
  2. vue 环境的搭建及初始化项目
  3. 《设计模式详解》结构型模式 - 适配器模式
  4. 解决eclipse中git中cannot open git-upload-pack(无法打开Git上传包)问题
  5. P1879 [USACO06NOV]玉米田Corn Fields
  6. Git正解 脱水版 【8. 定制Git】
  7. php halt,thinkphp-调试halt
  8. 在网上买衣服如何测量自己衣服尺码?
  9. Cisco switch spanning-tree priority 0
  10. EasyUI使用基础教程
  11. HSV/HSB/HSL 色相、饱和度、亮度的色彩模型
  12. 现实赢了袖手旁观他在冷眼看我们
  13. (附源码)计算机毕业设计Java二次元文化网站
  14. mysql数据库用户密码的修改管理
  15. 软件测评师之申请补贴(六)
  16. SEO搜索引擎优化(总结学习)
  17. java+selenium3
  18. 记录常用的代码工具(二)--Poi工具类
  19. 学习如何基于鳄鱼(Alligator)设计交易系统
  20. 小讲堂:Mobox文档管理软件中的文件外链是什么?

热门文章

  1. 贪心: Array Splitting(数列分段)(洛谷CF1175D)
  2. P4780-Phi的反函数【dfs】
  3. nssl1176-轨道【数论,Dp】
  4. ssl2331OJ1373-鱼塘钓鱼 之2【贪心堆优化】
  5. codeforces gym100959 I - Robots(稠密图建图优化)
  6. 2017 SEERC Divide and Conquer 树上差分
  7. MySQL cast()函数
  8. Java IO: Reader And Writer
  9. Java IO: 流
  10. Java中的注解是如何工作的