备注:
  官方提供的脚手架工具,我们可以直接使用,生成代码,同时需要nodejs 环境配置(比较简单,参考
相关资料即可)
 1. 安装脚手架
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
2. 生成基本项目
mix phx.new hello
项目代码结构如下: ├── README.md
├── brunch-config.js
├── config
│ ├── config.exs
│ ├── dev.exs
│ ├── prod.exs
│ ├── prod.secret.exs
│ └── test.exs
├── http
│ ├── get.http
│ ├── post.http
│ └── put.http
├── lib
│ ├── hello
│ │ ├── endpoint.ex
│ │ └── repo.ex
│ └── hello.ex
├── mix.exs
├── mix.lock
├── package.json
├── priv
│ ├── gettext
│ │ ├── en
│ │ │ └── LC_MESSAGES
│ │ │ └── errors.po
│ │ └── errors.pot
│ ├── repo
│ │ ├── migrations
│ │ │ └── 20180417133336_create_user.exs
│ │ └── seeds.exs
│ └── static
│ ├── css
│ │ ├── app.css
│ │ └── app.css.map
│ ├── favicon.ico
│ ├── images
│ │ └── phoenix.png
│ ├── js
│ │ ├── app.js
│ │ └── app.js.map
│ └── robots.txt
├── test
│ ├── channels
│ ├── controllers
│ │ └── page_controller_test.exs
│ ├── models
│ ├── support
│ │ ├── channel_case.ex
│ │ ├── conn_case.ex
│ │ └── model_case.ex
│ ├── test_helper.exs
│ └── views
│ ├── error_view_test.exs
│ ├── layout_view_test.exs
│ └── page_view_test.exs
├── web
│ ├── channels
│ │ └── user_socket.ex
│ ├── controllers
│ │ ├── democontroller.ex
│ │ ├── page_controller.ex
│ │ └── usercontroller.ex
│ ├── gettext.ex
│ ├── models
│ │ └── user.ex
│ ├── router.ex
│ ├── static
│ │ ├── assets
│ │ │ ├── favicon.ico
│ │ │ ├── images
│ │ │ │ └── phoenix.png
│ │ │ └── robots.txt
│ │ ├── css
│ │ │ ├── app.css
│ │ │ └── phoenix.css
│ │ ├── js
│ │ │ ├── app.js
│ │ │ └── socket.js
│ │ └── vendor
│ ├── templates
│ │ ├── layout
│ │ │ └── app.html.eex
│ │ ├── page
│ │ │ ├── appdemo.html.eex
│ │ │ └── index.html.eex
│ │ └── user
│ │ └── index.html.eex
│ ├── views
│ │ ├── demoview.ex
│ │ ├── error_helpers.ex
│ │ ├── error_view.ex
│ │ ├── layout_view.ex
│ │ ├── page_view.ex
│ │ └── userview.ex
│ └── web.ex
└── yarn.lock
3.  代码说明
备注: 代码添加了一个简单的rest demo ,参考 web/controllers/democontroller.ex
a. 初始化项目处理:
a. mix deps.get
b. mix ecto.create && mix ecto.migrate
c. npm install
d. mix phoenix.server or mix phx.server
b. 代码 controller 比较简单
defmodule Hello.DemoController do
use Hello.Web, :controller
def show(conn,params) do
render conn, "index.json",params
end def index(conn,params) do
render conn, "index.json",params
end def app(conn,params) do
render conn, "app.json",params
end def create(conn, params) do
render conn, "create.json",params
end def update(conn,params) do
render conn, "update.json",params
end
end c. 代码 view (就是简单的数据返回) defmodule Hello.DemoView do
use Hello.Web, :view
def render("index.json", _params) do
%{
name: "dalong",
age: 444
}
end
def render("create.json", _params) do
[
%{
name: "update",
age: 333,
}
]
end
def render("update.json", _params) do
[
%{
name: "appdemo",
age: 444
},
%{
name: "aaaaaa",
age: 5
},
%{
name: "dalaaaong",
age: 44
},
%{
name: "dalong",
age: 2
}
]
end
def render("app.json",_params) do
[
%{
name: "appdemo",
age: 444
},
%{
name: "aaaaaa",
age: 5
},
%{
name: "dalaaaong",
age: 44
},
%{
name: "dalong",
age: 2
}
]
end
end d. router (配置api 访问)
web/router.ex scope "/api", Hello do
pipe_through :api
resources "/demo" , DemoController
end
4. 启动测试
项目使用了一个vscode 插件http 可以直接模拟使用,或者参考README.md
mix phx.server
a. post
http://localhost:4000/api/demo

curl --request POST \
--url http://localhost:4000/api/demo \
--header 'content-type: application/json' \
--data '{"name": "sample","time": "Wed, 21 Oct 2015 18:27:50 GMT"}' b. put
http://localhost:4000/api/demo/demoid curl --request PUT \
--url http://localhost:4000/api/demo/appdemo \
--header 'content-type: application/json' \
--data '{"name": "sample","time": "Wed, 21 Oct 2015 18:27:50 GMT"}' c. get
http://localhost:4000/api/demo curl --request GET \
--url http://localhost:4000/api/demo
5. 参考资料
https://github.com/rongfengliang/phoenix-rest-demo
https://hexdocs.pm/phoenix/Phoenix.Router.html#resources/4
 
 
 
 

phoenix elixir 框架简单试用的更多相关文章

  1. hydra nodejs 微服务框架简单试用

    hydra 是一个以来redis 的nodejs 微服务框架 安装 需要redis,使用docker 进行运行 redis docker run -d -p 6379:6379 redis 安装yo ...

  2. MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)

    聚合运算之group 语法: db.collection.group( { key:{key1:1,key2:1}, cond:{}, reduce: function(curr,result) { ...

  3. Hibernate框架简单应用

    Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...

  4. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  5. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

  6. jQuery系列 第一章 jQuery框架简单介绍

    第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...

  7. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  8. Mybatis框架简单使用

    Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...

  9. 【CI3.1】CI框架简单使用方法

    CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...

随机推荐

  1. HTML 参考手册- (HTML5 标准)

    HTML 参考手册- (HTML5 标准) 功能排序 New : HTML5 新标签 标签 描述 基础   <!DOCTYPE>  定义文档类型. <html> 定义一个 HT ...

  2. 关系型数据库(RDBMS)与 MongoDB 的对应关系

    谈一下关系型数据库(RDBMS)与 MongoDB 的对应关系:

  3. 学习 nginx (持续更新)

    什么是代理与反向代理,有什么应用场景? 平常经常听别人说代理与反向代理,那么这二者到底有什么区别呢? 代理 场景:我需要访问一个服务器C,但是由于某些原因我无法访问到它,(典型的就是你FQ,然后fai ...

  4. Quartz教程:快速入门

    原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处 ...

  5. 【zzuli-1923】表达式求值

    题目描述 假设表达式定义为:1. 一个十进制的正整数 X 是一个表达式.2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+.3. 如果 X 和 Y 是 表达式,则 ...

  6. web版源码管理软件SCM-Manager安装配置

    背景 一直使用 “VisualSvn Server” 作为源码管理工具,使用一段时间之后,使用场景遇到以下问题 添加用户必需登录到服务器. 一台服务器,只能安装一个 “VisualSvn Server ...

  7. spring 核心接口之 Ordered

    Spring中提供了一个Ordered接口.从单词意思就知道Ordered接口的作用就是用来排序的.Spring框架是一个大量使用策略设计模式的框架,这意味着有很多相同接口的实现类,那么必定会有优先级 ...

  8. KindEditor富文本编辑框和BeautifulSoup的基本使用

    KindEditor富文本编辑框 1.进入官网 2.下载 官网下载:http://kindeditor.net/down.php 本地下载:http://files.cnblogs.com/files ...

  9. jquery中ajax跨域的写法

    由于JS同源策略的影响,因此js只能访问同域名下的文档.因此要实现跨域,一般有以下几个方法: 一.处理跨域的方式: 1.代理 2.XHR2 HTML5中提供的XMLHTTPREQUEST Level2 ...

  10. Linux:history命令详解

      Linux下History命令 主要用于显示历史指令记录内容, 下达历史纪录中的指令 . 语法 history [n] history [-c] history [-raw] histfiles ...