016-Go Iris Restful测试
1:data/data.go
package data import(
"fmt"
"database/sql"
_"github.com/lib/pq"
) const(
host = "192.168.72.128"
port =
user = "test"
password = "test"
dbname = "testdb"
) var Db *sql.DB func init(){
var err error pgInfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
host, port, user, password, dbname) Db, err = sql.Open("postgres", pgInfo) if err != nil{
panic(err)
}
}
2:result/result.go
package result
type Result struct{
No int `json:"no"`
Msg string `json:"msg"`
Obj interface{} `json:"obj,omitempty"`
}
3:user/user_data.go
package user import(
."iristest/data"
) type User struct{
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
} func (user *User) Insert() (err error){
sql := "insert into t_user(name,age) values($1,$2)"
_, err = Db.Exec(sql, user.Name, user.Age)
return
} func Delete(id int) (err error){
sql := "delete from t_user where id=$1"
_,err = Db.Exec(sql, id)
return
} func (user *User) Update()(err error){
sql := "update t_user set name=$1,age=$2 where id=$3"
_,err = Db.Exec(sql, user.Name, user.Age, user.ID)
return
} func Select(id int)(user User, err error){
sql := "select id,name,age from t_user where id=$1"
user = User{}
err = Db.QueryRow(sql, id).Scan(&user.ID, &user.Name, &user.Age)
return
} func SelectList()(users []User, err error){
sql := "select id,name,age from t_user"
users = []User{}
rows,err := Db.Query(sql)
if err != nil{
panic(err.Error)
}
defer rows.Close() for rows.Next(){
rows.Columns()
var user User
err = rows.Scan(&user.ID, &user.Name, &user.Age)
if err != nil{
panic(err.Error)
} users = append(users, user)
} return
}
4:user/user_web.go
package user import(
"github.com/kataras/iris"
"strconv"
."iristest/result"
) func CreateUser(ctx iris.Context){
var user User
ctx.ReadJSON(&user) err := user.Insert() result := Result{} if err != nil{
result.No =
result.Msg = err.Error()
}else{
result.No =
result.Msg = "成功保存用户信息"
} ctx.JSON(result)
} func GetUserById(ctx iris.Context){
id,_ := strconv.Atoi(ctx.Params().Get("id"))
user, err := Select(id) result := Result{} if err != nil{
result.No =
result.Msg = err.Error()
}else{
result.No =
result.Msg = "成功获取用户信息"
result.Obj = user
} ctx.JSON(result)
} func GetUserList(ctx iris.Context){
users, err := SelectList() result := Result{} if err != nil{
result.No =
result.Msg = err.Error()
}else{
result.No =
result.Msg = "成功获取用户列表信息"
result.Obj = users
} ctx.JSON(result)
} func DeleteUserById(ctx iris.Context){
id,_ := strconv.Atoi(ctx.Params().Get("id"))
err := Delete(id) result := Result{} if err != nil{
result.No =
result.Msg = err.Error()
}else{
result.No =
result.Msg = "成功删除用户信息"
} ctx.JSON(result)
}
5:main.go
package main import(
"github.com/kataras/iris"
"github.com/kataras/iris/middleware/logger"
"github.com/kataras/iris/middleware/recover"
."iristest/user"
) func main(){
app := iris.New()
app.Logger().SetLevel("debug")
app.Use(recover.New())
app.Use(logger.New()) app.RegisterView(iris.HTML("./public", ".html"))
app.Get("/", func(ctx iris.Context){
ctx.View("index.html")
})//users
usersRoutes := app.Party("/users", func(ctx iris.Context){
ctx.Next()
})
{
usersRoutes.Post("/", CreateUser)
usersRoutes.Delete("/{id:int}", DeleteUserById)
usersRoutes.Get("/{id:int}", GetUserById)
usersRoutes.Get("/", GetUserList)
} app.Run(iris.Addr(":8080"),iris.WithCharset("UTF-8"),iris.WithoutServerError(iris.ErrServerClosed))
}
016-Go Iris Restful测试的更多相关文章
- RESTful测试工具-RESTClient
很多测试人可能对RESTful的概念还是很模糊的,那么到底什么是RESTful?百度百科给出的一句话描述是一个架构样式的网络系统,似乎还是有点不懂?OK,说到Restful,我们一般从REST开始说起 ...
- RESTful测试工具RESTClient
1.简介 RESTClient是一个用于测试RESTful Web服务的客户端, 是用Java Swing编写的基于Http协议的接口测试工具, 它可以向服务器发送各种Http请求,并显示服务器响应. ...
- 002 Spring Restful案例
1:工程结构 需要注意的是需要额外导入以下三个包: jackson-annotations-2.6.1.jar jackson-core-2.6.1.jar jackson-databind-2.6. ...
- 第四篇:用IntelliJ IDEA 搭建基于jersey的RESTful api
编译器:Intellij IDEA 系统环境: MAC OS 相关技术:Maven.tomcat 7.jdk8 1.创建项目 首先创建一个web Application项目(这里我们打算用maven引 ...
- sklearn训练感知器用iris数据集
简化版代码 from sklearn import datasets import numpy as np #获取data和类标 iris = datasets.load_iris() X = iri ...
- Spring MVC之JSON数据交互和RESTful的支持
1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...
- springMVC对RESTful的支持
1:后台controller方法编写 @RequestMapping("/itemsLook/{id}") public ItemsCustom itemsLook(@PathVa ...
- Web系统开发构架再思考-前后端的完全分离
前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...
- SpringBoot实例
7player 7号球员 -- Show Time !跳至内容 首发 左边锋 技术流 外援 教练 7号 基于SpringBoot + Mybatis实现SpringMVC Web项目[原创] 目录 [ ...
随机推荐
- ASIHttpRequest release 包无法发出请求
ASIHttpRequest 在 Release 模式下,Optimize 后会导致发不出请求. 解决方案: 去掉这两个文件的 Optimization:ASIFormDataRequest.m AS ...
- 如何修改Oracle Enterprise Linux时区?
修改/etc/sysconfig/clock [root@psdyy-2 ~]# cat /etc/sysconfig/clock ZONE="Asia/Shanghai" UTC ...
- ArcGIS Pro 切割打印
ArcGIS Pro 切割打印
- DataGridView 在 WinForms中应用不同的单元格式
/// <summary> /// Set the cell background colour to make the ups and downs more visible. /// & ...
- 关于struts2种的action运行两次,或多次,或反复运行的bug
今天在做项目的时候发现一个bug,就是action会莫名其妙的运行两次.网上搜了非常多帖子,关于这个问题也得到了一些处理方法,可是没有我想要的,造成运行两次活多次的问题呢,有非常多种原因,我在这里仅仅 ...
- 超感猎杀/超感八人组第一季至二季/全集Sense8迅雷下载
本季 Sense8 (2015)看点:<超感八人组>由沃卓斯基姐弟执导的科幻剧集是Netflix继“纸牌屋第二季”后的又一大手笔制作,讲述未来世界不同地区的8个人因同时目睹同一暴力事件.从 ...
- SVG.js 元素操作整理(二)-Transform
一.transform()获取或设置矩阵变换 var draw = SVG('svg1').size(300, 300); //Transforming SVG元素矩阵变换 var rect = dr ...
- 深入理解多线程(二)—— Java的对象模型
上一篇文章中简单介绍过synchronized关键字的方式,其中,同步代码块使用monitorenter和monitorexit两个指令实现,同步方法使用ACC_SYNCHRONIZED标记符实现.后 ...
- oracle 索引的(创建、简介、技巧、怎样查看)
一.索引简介1.索引相当于目录2.索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率.3.索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散 ...
- html table奇偶行颜色设置 (CSS选择器)
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型.n 可以是数字.关键词或公式. 下面的例子, 设置表格的奇偶行背景颜色不同:单独设置表格的第1列背景颜色不同. & ...