zoukankan      html  css  js  c++  java
  • 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 上。

    来源:http://blog.iotalabs.io/

  • 相关阅读:
    python 3 day1(上)
    JMeter (一) Thread Group
    TC-001下载并简单使用Python
    SQL Server ->> 谈SQL Server数据库大表迁移
    SQL Server ->> 记Alwayson高可用副本同步失败后续恢复的性能调优争议
    SQL Server ->> AlwaysOn高可用副本同步失败
    SQL Server ->> AlwaysOn 监控脚本
    Linux ->> Source命令
    PSD 转化成 HTML
    笔试
  • 原文地址:https://www.cnblogs.com/wang_yb/p/5823891.html
Copyright © 2011-2022 走看看