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项目[原创] 目录 [ ...
随机推荐
- Download Hacking Team Database from torrent using magnet link
20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股 ...
- Android基础笔记(九)- 广播
广播的概念 广播的生命周期 案例-监听短信到来并解析短信内容 案例-拦截外拨电话并设置区号 案例-SD卡状态监听 介绍一些经常使用的广播 发送自己定义广播 有序广播和无序广播 启程!! ! 广播的概念 ...
- .NET:强签名程序集的加载问题 之 版本重定向
背景 多数解决方案会包含多个项目,某些支持插件架构的解决方案中,更是包含多个插件项目,这些项目会使用一些第三方NuGet Packages,如果管理不慎,解决方案中会出现多个版本的引用,这在编译期间不 ...
- 现场故障-数据量超出plsql developer结果集导致应用程序无数据现象
情景重现: 维护人员想要用plsql developer工具查看一年前某表的数据,表中数据约30W行,因为此时无业务,维护人员关闭了应用程序.查询时选择了将所有数据所有列出,结果在显示到3W多行时,弹 ...
- maven打包时跳过单元测试
运行mvn install时跳过Test <project> [...] <build> <plugins> <plugin> <groupId& ...
- JQuery攻略(一) 基础知识——选择器 与 DOM
JQuery是功能丰富的Javascript库,可以帮助用户毫不费力地把动态功能应用到网页. JQuery具有许多强大的功能,包括访问部分网页,快速修改网页内容,添加动画,应用AJAX技术等等. 正因 ...
- CodeReview工具Gerrit的python库pygerrit2
源代码: https://github.com/dpursehouse/pygerrit2
- RSA加密解密及RSA签名和验证及证书
RSA加密解密及RSA签名和验证及证书 公钥是给别人的 发送密文使用公钥加密 验证签名使用公钥验证 私钥是自己保留的 接受密文使用私钥解密 发送签名使用私钥签名 上述过程逆转是不行的,比如使用私钥加密 ...
- go语言之进阶篇json解析到结构体
1.json解析到结构体 示例: package main import ( "encoding/json" "fmt" ) type IT struct { ...
- 嵌入式系统WinCE下应用程序GUI界面开发【转】
嵌入式系统WinCE下应用程序GUI界面开发 ByToradex 秦海 本文旨在介绍嵌入式系统在Wince下进行GUI应用程序开发可以选择的不同GUI开发框架(Framework),目前最常用的几种方 ...