博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
phoenix 开发API系列(一)创建简单的http api
阅读量:6152 次
发布时间:2019-06-21

本文共 1792 字,大约阅读时间需要 5 分钟。

安装 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"}  endend

新增的 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, :helloend

然后启动 phoenix server, 在工程根目录下执行:

$ mix phoenix.serverCompiling 7 files (.ex)[info] Running PhoenixApi.Endpoint with Cowboy using http://localhost:400026 Aug 16:43:04 - info: compiled 6 files into 2 files, copied 3 in 1.2 sec

最后在浏览器中访问 可以看到返回的JSON结果

{  "hello": "world"}

总结

Web app的前后端分离是趋势,phoenix framework 虽然是类似 RoR 的全栈 web framework, 只用它来开发api也是不错的选择。 用它来开发 api,我们可以暂时不关心 view 和 template 部分,将重点放在 controller 和 router 上。

来源:

转载于:https://www.cnblogs.com/wang_yb/p/5823891.html

你可能感兴趣的文章
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>