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 上。
phoenix 开发API系列(一)创建简单的http api的更多相关文章
- WEB API系列(一):WEB API的适用场景、第一个实例
在我前一篇博客中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下,今天,我们一起来讨论一下WEB API的适用场景,然后写我们第一个W ...
- Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)
在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...
- Knockout开发中文API系列2–创建数据模型和监控属性
Observables,这个词的翻译来自汤姆大叔,对于部分翻译不是很准确的,欢迎大家留言,以得到更好的翻译. Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. ...
- ArcGIS Server开发教程系列(7)使用ArcGIS API for Javascript-Hello World
ArcGIS API for Javascript API下载地址:http://support.esrichina-bj.cn/2011/0223/960.html 选择最新的下载就好了,目前是3 ...
- 【Web API系列教程】1.2 — Web API 2中的Action Results
前言 本节的主题是ASP.NET Web API怎样将控制器动作的返回值转换成HTTP的响应消息. Web API控制器动作能够返回下列的不论什么值: 1. void 2. HttpResponseM ...
- phoenix 开发API系列 目录
phoenix 开发API系列(一)创建简单的http api phoenix 开发API系列(二)phoenix 各类 api 实现方式 phoenix 开发API系列(三)phoenix api ...
- phoenix 开发API系列(三)phoenix api 结合数据库
概述 介绍了 api 的各种写法之后,下面介绍构建 api 时与数据库连接的方式. 注 下面使用的工程的完整代码已经公开在: http://git.oschina.net/wangyubin/phoe ...
- phoenix 开发API系列(二)phoenix 各类 api 实现方式
概述 上一篇已经提到如何安装以及利用 phoenix framework 来开发一个简单的 api. 接着上次的工程,下面演示如何通过 phoenix framework 来构建各种类型的 api 来 ...
- openresty开发系列10--openresty的简单介绍及安装
openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...
随机推荐
- go的mgo,连接未释放问题,连接泄露。
api启动几天后,卡住(连接失败,超时) 异常原因 mongo连接被占满,无法建立mgo连接,返回信息 查询点用端口可知,97%的连接被api项目占用. api项目的mongodb连接“泄露”,某处的 ...
- android 使用LinearGradient进行字体渐变的效果
有这么一种效果,一串字符有一束白光从字体上面闪光的效果.如下图显示: 就像上面的显示效果一样一束白光闪过,这种效果主要还是使用了LinearGradient类来进行的 LinearGradient也称 ...
- win10 virtualbox5, ubuntu16.04 xshell5配合使用
这个搭配很好用,各软件的安装很容易,ubuntu安装进virtualbox后安装增强功能,然后将网络连接方式改为桥接,直接改为桥接就可以了,其他的不用变,这个比以前的版本好用多了.这个桥接解决了宿主机 ...
- arch linux 安装 之 ---GPT--引导篇
新入一二手X240 ,直接格式化,装archLinux. 一.引导程序安装--------------- 1.首先搞清楚什么是UEFI Under UEFI下的引导顺序 System switched ...
- window常用命令
netstat -ano|findstr "端口号" :查看指定端口信息[netstat -ano|findstr "端口号" ] ,然后看下PID号 ...
- android命令抓LOG
手机和电脑,在电脑上开3个命令窗口,分别输入如下3个命令分别抓取mainLog.radioLog和kernalLog adb logcat -v time >main.txt adb logca ...
- rsync排除文件同步
排除扩展名为log的文件 rsync -ave ssh --exclude '*.log' root@192.168.168.188:/website/abc.com/* /website/abc.c ...
- ZooKeeper事务日志记录器SyncRequestProcessor
SyncRequestProcessor作为一个ZooKeeper中的一个关键线程(ZooKeeperCriticalThread),是ZooKeeper请求处理链中的事务日志记录处理器,其主要用来将 ...
- 由React学习到Yeoman安装以及遇到的问题
离职闲下来之后想着学一些新知识,本来是想从react入手,结果延伸出去的内容就像一棵树的树枝,不断增加. 学习计划是从这里开始的(6周学习计划,攻克javascript难关 https://zhuan ...
- virtual 修饰符 C# .NET
virtual 关键字用于修饰方法.属性.索引器或事件声明,并且允许在派生类中重写这些对象. 例如,此方法可被任何继承它的类重写. (C#参考) public virtual double Area( ...