phoenix elixir 框架简单试用
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
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
备注: 代码添加了一个简单的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
项目使用了一个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
https://github.com/rongfengliang/phoenix-rest-demo
https://hexdocs.pm/phoenix/Phoenix.Router.html#resources/4
phoenix elixir 框架简单试用的更多相关文章
- hydra nodejs 微服务框架简单试用
hydra 是一个以来redis 的nodejs 微服务框架 安装 需要redis,使用docker 进行运行 redis docker run -d -p 6379:6379 redis 安装yo ...
- MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
聚合运算之group 语法: db.collection.group( { key:{key1:1,key2:1}, cond:{}, reduce: function(curr,result) { ...
- Hibernate框架简单应用
Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
- Django - Django框架 简单介绍
Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...
- jQuery系列 第一章 jQuery框架简单介绍
第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...
- Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)
Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...
- Mybatis框架简单使用
Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...
随机推荐
- Windows中使用wget整站下载
weget wget安装 Windows下载 点击下载 https://eternallybored.org/misc/wget/ 会跳转到wget的下载页,根据自己电脑选择下载的文件,我下载的版 ...
- Android数据库框架-----GreenDao3的相关使用和版本升级更新
GreenDAO是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁:是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案. GreenDAO 优势 1.一个精简的库 2 ...
- java开发中的重中之重-------mysql(基础篇)
介绍: mysql是目前世界上最流行的关系型数据库,在国内大的互联网公司都在使用mysql数据库,mysql经常被我们这样概述,“mysql是轻量级关系型数据库”,其实轻量级并不是说mysql是中小型 ...
- ActiveMQ教程(消息发送和接受)
一 环境的搭建 version为你的版本号 如果你是普通的项目的话,创建一个lib文件夹,导入相应的jar包到你的lib中,jar包为:activemq-all-{version}.jar.log4j ...
- 015PHP基础知识——流程控制(三)
<?php /** *流程控制(三) */ /* 循环结构: while(){ } */ //设置脚本最长执行时间:100秒 //set_time_limit(100); $lantian = ...
- node 封装db层
var db = {}; var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: , host: '1 ...
- 剑指offer--50.滑动窗口的最大值
时间限制:1秒 空间限制:32768K 热度指数:157641 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的 ...
- New Concept English there (8)
31w/m 56% The Great St Bernard Pass connects Switzerland to Italy. At 247o metres, it is the highest ...
- iOS 阶段学习第三天笔记(运算符)
iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...
- debug运行java程序报错
debug运行java程序报错 ERROR: transport error 202: connect failed: Connection timed out ERROR: JDWP Transpo ...