安装 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 douse PhoenixApi.Web, :controllerdef hello(conn, _params) dojson 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 dopipe_through :apiget "/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/

本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/p/5823891.html,如需转载请自行联系原作者

phoenix 开发API系列(一)创建简单的http api相关推荐

  1. API系列(一):SMS API

    API系列(一):SMS API 简介 一. CONTACT GROUPS API 1. 总概 2. Create a group 3. View a group 4. Update a group ...

  2. WEB API系列(一):WEB API的适用场景、第一个实例

    在我前一篇博客<WebAPI前置知识:HTTP与RestfulAPI>中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下, ...

  3. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  4. 【Web API系列教程】1.2 — Web API 2中的Action Results

    前言 本节的主题是ASP.NET Web API怎样将控制器动作的返回值转换成HTTP的响应消息. Web API控制器动作能够返回下列的不论什么值: 1. void 2. HttpResponseM ...

  5. phoenix 开发API系列 目录

    phoenix 开发API系列(一)创建简单的http api phoenix 开发API系列(二)phoenix 各类 api 实现方式 phoenix 开发API系列(三)phoenix api ...

  6. WEB API 系列(二) Filter的使用以及执行顺序

    在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don't Repeat Yourself)思想 ...

  7. 在SAP云平台的API portal里创建和管理API

    登录API Portal,创建一个新的API: API Provider字段,选择之前创建好的API provider,SAPDeveloperSystemES5,点击Discover按钮后,能看到该 ...

  8. phoenix 开发API系列(三)phoenix api 结合数据库

    概述 介绍了 api 的各种写法之后,下面介绍构建 api 时与数据库连接的方式. 注 下面使用的工程的完整代码已经公开在: http://git.oschina.net/wangyubin/phoe ...

  9. phoenix 开发API系列(二)phoenix 各类 api 实现方式

    概述 上一篇已经提到如何安装以及利用 phoenix framework 来开发一个简单的 api. 接着上次的工程,下面演示如何通过 phoenix framework 来构建各种类型的 api 来 ...

  10. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

最新文章

  1. 导入eclipse项目运行时run as no application
  2. 《计算机组成与设计(ARM版)》读书笔记-第二章指令2
  3. python怎么变成文档_python3如何将docx转换成pdf文件
  4. Python运行环境与异常处理
  5. mysql给用户授权_mysql创建用户与授权(实例)
  6. win10设置打开闪退怎么办 电脑windows10设置打开闪退解决方法
  7. 计算机频繁开机是什么原因,电脑频繁自动重启什么原因
  8. 近年来小学计算机课程目录,小学3-6年级信息技术课程目录(苗逢春版)
  9. element-ui下载文件功能
  10. 蓝桥杯(Java) 回文日期
  11. 终于来了~微信车载版正式上线~
  12. java拼音字符串的顺序,Java字符串按照汉语拼音排序
  13. 华为高清会议摄像机预置位的使用方法
  14. 云计算在教育方面的应用
  15. 原创OI题目:部落冲突
  16. 匹兹堡大学计算机系世界排名,2019上海软科世界一流学科排名计算机科学与工程专业排名匹兹堡大学排名第101-150...
  17. OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数...
  18. 【渝粤题库】国家开放大学2021春2412基础写作题目
  19. dpl服务器维护,巨无霸核心!超微发布X12DPL系列服务器主板
  20. Thinkphp--Auth权限控制

热门文章

  1. 快速创建一个 spring mvc 示例
  2. 创建一个cocos2d-x工程添加一个自定义Scene并显示
  3. MySpace:.Net架构网站的王者
  4. (转)uml 交互视图
  5. 关于使用mac聚焦搜索无法搜索软件的情况
  6. react-router中进行路由控制
  7. ​ ​微软Office新增实用功能允许用户在不同设备上轻松送同步字体
  8. MacOS实现MSDOS格式化为NTFS文件系统
  9. Paragon NTFS Mac官网版的下载安装与激活教程分享
  10. python 图片识别