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架构偏 ...
随机推荐
- Div+CSS命名规范
注意事项:1.命名遵循驼峰式 2.尽量用中文 3.不加中杠和下划线 4.尽量不缩写,除非一看就明白的单词 头:header 标志:logo 友情链接:friendlink 内容:c ...
- Windows10
一.快速开机设置 我的电脑配置如图,装有VS2015 2010 OFFICE等常用开发工具,在线升级后开机速度并没有明显提升. 1.保证windows font cache service服务启动,3 ...
- JavaWeb技术(二):DAO设计模式
1. DAO全称:Data Access Object , 数据访问对象.使用DAO设计模式来封装数据持久化层的所有操作(CRUD),使得数据访问逻辑和业务逻辑分离,实现解耦的目的. 2. 典型的DA ...
- java8中CAS的增强
注:ifeve.com的同名文章为本人所发,此文在其基础做了些调整.转载请注明出处! 一.java8中CAS的增强 前些天,我偶然地将之前写的用来测试AtomicInteger和synchronize ...
- 取出Object对象里面的字段,
Type s = result.GetType(); bool f = (bool)s.GetField("Succeed").GetValue(result);//Succeed ...
- 海量数据相似度计算之simhash短文本查找
在前一篇文章 <海量数据相似度计算之simhash和海明距离> 介绍了simhash的原理,大家应该感觉到了算法的魅力.但是随着业务的增长 simhash的数据也会暴增,如果一天100w, ...
- svn安装与其服务器搭建
1.概述:SVN为程序开发团队常用的代码管理,版本控制软件. 2.工具: 1) TortoiseSVN-1.8.4.24972-win32-svn-1.8.5.msi SVN安装包. 2)setup ...
- 关于myeclipse的破解的问题
myeclipse的破解的问题,也是在网上down 了一下,发现并不需要找到什么注册的软件都可以自动完成的哦! 博客地址:http://blog.csdn.net/fuxiaohui/article/ ...
- 【转载】最完美解决Nginx部署ThinkPHP项目的办法
网上通用解决方法的配置如下: server { ... location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给T ...
- C# 换行符
winform 中 TextBox 的 Multiline属性设置为 true ,敲入几个字符和几个回车,然后保存到数据库,再从数据库中读取出来赋值给TextBox,换行符丢失.将读取出的字符串中的& ...