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测试的更多相关文章

  1. RESTful测试工具-RESTClient

    很多测试人可能对RESTful的概念还是很模糊的,那么到底什么是RESTful?百度百科给出的一句话描述是一个架构样式的网络系统,似乎还是有点不懂?OK,说到Restful,我们一般从REST开始说起 ...

  2. RESTful测试工具RESTClient

    1.简介 RESTClient是一个用于测试RESTful Web服务的客户端, 是用Java Swing编写的基于Http协议的接口测试工具, 它可以向服务器发送各种Http请求,并显示服务器响应. ...

  3. 002 Spring Restful案例

    1:工程结构 需要注意的是需要额外导入以下三个包: jackson-annotations-2.6.1.jar jackson-core-2.6.1.jar jackson-databind-2.6. ...

  4. 第四篇:用IntelliJ IDEA 搭建基于jersey的RESTful api

    编译器:Intellij IDEA 系统环境: MAC OS 相关技术:Maven.tomcat 7.jdk8 1.创建项目 首先创建一个web Application项目(这里我们打算用maven引 ...

  5. sklearn训练感知器用iris数据集

    简化版代码 from sklearn import datasets import numpy as np #获取data和类标 iris = datasets.load_iris() X = iri ...

  6. Spring MVC之JSON数据交互和RESTful的支持

    1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...

  7. springMVC对RESTful的支持

    1:后台controller方法编写 @RequestMapping("/itemsLook/{id}") public ItemsCustom itemsLook(@PathVa ...

  8. Web系统开发构架再思考-前后端的完全分离

    前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...

  9. SpringBoot实例

    7player 7号球员 -- Show Time !跳至内容 首发 左边锋 技术流 外援 教练 7号 基于SpringBoot + Mybatis实现SpringMVC Web项目[原创] 目录 [ ...

随机推荐

  1. 本地docker搭建gitlab, 并配置ldap认证

    基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下:   1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...

  2. 疑犯追踪第五季/全集Person of Interest迅雷下载

    英文全名Person of Interest,第5季(2015)CBS.本季看点:<疑犯追踪>本季剧组暗示Finch可能重建机器,这次他会给机器更多自由(如Root一直要求的那样).或许新 ...

  3. 【转】Itunes Connect新版本如何提交应用

    本文系转载,版权归原作者所有(原文链接>>). How do I submit my app to iTunes connect? To submit your app to iTunes ...

  4. 无需SherlockActionbar的SlidingMenu使用详解(一)——通过SlidingMenu设置容器并解决滑动卡顿的问题

    想必很多人都听过这个开源框架,一年前真的是风靡一时.只是它的配置较为繁琐,还需要sherlockActionbar的支持,我这里下载了最新的开源库,并且在实际用套用了AppCompat的官方库,这样就 ...

  5. 关于mysql中information_schema.tables

    项目中出现这样一个SQL语句,现记录如下: @Select("select table_name tableName, engine, table_comment tableComment, ...

  6. Kubeadm安装Kubernetes环境

    Kubeadm方式号称一键安装部署,很多人也试过并且顺利成功,可到了我这里因为折腾系统问题,倒腾出不少的坑出来. kubeadm好处是自动配置了必要的服务,以及缺省配置了安全的认证,etcd,apis ...

  7. PHP Unit资料收集

    ThinkPHP Unit https://github.com/gaoermai/ThinkPHPUnit PHPUnit入门http://blog.csdn.net/fly_heart_yuan/ ...

  8. Android - View的绘制流程一(measure)

    该博文所用的demo结构图: 相应的代码: MainActivity.java: [java] view plain copy <span style="font-family:Mic ...

  9. OpenCV教程(45) harris角的检测(3)

          在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到harris角的分布并不均匀,在纹理颜色比较深的地方检测的harris角结果更密集一些.本章中,我们使用一个 ...

  10. 算法: skiplist 跳跃表代码实现和原理

    SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构.由于它的代码以及原理实现的简单性,更为人们所接受. 所有操作均从上向下逐层查找,越上层一次next操作跨度越大.其 ...