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项目[原创] 目录 [ ...
随机推荐
- dotnetty 心跳
IdleStateHandler 需要提供三个参数: readerIdleTimeSeconds, 读超时. 即当在指定的事件间隔内没有从 Channel 读取到数据时, 会触发一个 READER_I ...
- FAQ:如何提高编译速度?
问: 如何提高编译速度? 答: 减少一次需要编译的代码量,目前想到的有两种思路: 1:修改解决方案的属性配置,取消勾选不常修改的项目的“生成”复选框. 2:采用插件化的架构,每一个插件弄一个解决方案, ...
- yii开发第一部分之执行流程
一 目录文件 |-framework 框架核心库 |--base 底层类库文件夹,包含CApplication(应用类,负责全局的用户请求处理,它管理的应用组件集,将提供特定功能给整个应用程序),CC ...
- Occlusion Culling遮挡剔除理解设置和地形优化应用
这里使用的是unity5.5版本 具体解释网上都有,就不多说了,这里主要说明怎么使用,以及参数设置和实际注意点 在大场景地形的优化上,但也不是随便烘焙就能降低帧率的,必须结合实际情况来考虑,当然还有透 ...
- Java语法糖初探(三)--变长参数
变长参数概念 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用.形如 function(T …args).但是需要明 ...
- [转]专访企业QQ SaaS团队,谈企业级LNMP架构设计
FROM : http://www.csdn.net/article/2014-08-20/2821302-interview-tencent-b-qq-shuai-wang 对比IaaS和PaaS, ...
- C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher (WMI)
实现方法参考 http://www.cnblogs.com/chengulv/archive/2012/12/29/2839303.html 下面介绍查看属性的方法: (1)在运行里输入 “WBEMT ...
- Reader 与 Guava MultiReader
Reader是Java IO体系里字符处理读取流的基本类,代码如下 /* * %W% %E% * * Copyright (c) 2006, Oracle and/or its affiliates. ...
- iOS开发-UINavigationBar和Status Bar实用技巧
iOS7之后关于UINavigationBar和Status Bar都发生了一系列的改变,如果不需要兼容iOS7之后的设备,按照网上有些资料去解决问题会踩到一些坑.在iOS 7中,我们可以修改每个V ...
- 自动化打包 Jenkins 持续集成 Git Gradle MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...