Iris之Get/Post/Put等请求及返回格式

 

目录

一、Iris框架的请求处理方式

1、GET请求及获取参数

(1)处理Get请求

(2)处理Get请求 并接受参数

(3)正则表达式路由

2、POST请求及获取参数

(1)处理Post请求 form表单的字段获取

(2)处理Post请求 Json格式数据

(3)处理Post请求 Xml格式数据

3、PUT请求

4、DELETE请求

5、完整代码

(1)model

(2)main函数

二、请求处理的数据格式返回


一、Iris框架的请求处理方式

1、GET请求及获取参数

(1)处理Get请求

(2)处理Get请求 并接受参数

http://localhost:7999/hello?username="张三"&pwd="123456"

(3)正则表达式路由

Iris框架在进行处理http请求时,支持请求url中包含正则表达式。
正则表达式的具体规则为:

  • 1、使用{}对增则表达式进行包裹,url中出现类似{}样式的格式,即识别为正则表达式
  • 2、支持自定义增则表达式的变量的命名,变量名用字母表示。比如:{name}
  • 3、支持对自定义正则表达式变量的数据类型限制,变量名和对应的数据类型之间用“:”分隔开。比如:{name:string}表示增则表达式为name,类型限定为string类型
  • 4、通过context.Params()的Get()和GetXxx()系列方法来获取对应的请求url中的增则表达式的变量
  • 5、增则表达式支持变量的数据类型包括:string、int、uint、bool等

2、POST请求及获取参数

(1)处理Post请求 form表单的字段获取

postman设置及请求如下:

(2)处理Post请求 Json格式数据

   

postman设置及请求如下:

  • Postman工具选择[{"key":"Content-Type","value":"application/json","description":""}]
  • 请求内容:{"name": "davie","age": 28}

(3)处理Post请求 Xml格式数据

postman设置及请求如下:

  • Postman工具选择[{"key":"Content-Type","value":"application/xml","description":""}]
  • 请求内容:

    <Person>
        <Name>大大</Name>
        <Age>56</Age>
    </Person>

3、PUT请求

4、DELETE请求

5、完整代码

(1)model

package model

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

(2)main函数

func main() {
	app := iris.New()

	//url: http://localhost:8000/getRequest
	//type:GET请求
	app.Get("/getRequest", func(context context.Context) {
		//获取path
		path := context.Path()
		//日志输出
		app.Logger().Info(path)
		//写入返回数据
		context.WriteString(path)
	})


	app.Handle("GET", "/hello", func(context context.Context) {
		path := context.Path()
		app.Logger().Info(path)
		//获取get请求所携带的参数
		userName := context.URLParam("username")
		app.Logger().Info(userName)

		pwd := context.URLParam("pwd")
		app.Logger().Info(pwd)
		//返回html数据格式
		context.HTML("<h1>" + userName + "," + pwd + "</h1>")
	})



	//处理Post请求 form表单的字段获取
	app.Post("/postLogin", func(context context.Context) {
		path := context.Path()
		app.Logger().Info(path)
		//context.PostValue方法来获取post请求所提交的form表单数据
		name := context.PostValue("name")
		pwd := context.PostValue("pwd")
		app.Logger().Info(name, "==", pwd)
		context.HTML(name, "==", pwd)
	})


	app.Post("/postJson", func(context context.Context) {
		path := context.Path()
		app.Logger().Info("请求URL:",path)
		//2.Json数据解析
		var person model.Person
		//通过context.ReadJSON()读取传过来的数据
		if err := context.ReadJSON(&person); err != nil {
			panic(err.Error())
		}
		//返回格式化的内容
		context.Writef("Received: %#+v\n", person)
	})


	app.Post("/postXml", func(context context.Context) {

		//1.Path
		path := context.Path()
		app.Logger().Info("请求URL:", path)

		//2.XML数据解析
		var person model.Person
		if err := context.ReadXML(&person); err != nil {
			panic(err.Error())
		}
		//返回格式化的内容
		context.Writef("Received:%#+v\n", person)
	})


	//url:http://localhost:8000/user/info
	//type:POST请求,Handle方法第一个参数为POST,表明是Post请求
	app.Handle("POST", "/user/info", func(context context.Context) {
		context.WriteString(" User Info is Post Request , Deal is in handle func ")
	})


	//put请求
	app.Put("/putinfo", func(context context.Context) {
		path := context.Path()
		app.Logger().Info("请求url:", path)
	})

	//delete请求
	app.Delete("/deleteuser", func(context context.Context) {
		path := context.Path()
		app.Logger().Info("Delete请求url:", path)
	})
	app.Run(iris.Addr("localhost:7999"))
}

二、请求处理的数据格式返回

返回string类型数据

context.WriteString("hello world")

返回json格式的数据

context.JSON(iris.Map{"message": "hello word", "requestCode": 200})

返回xml格式的数据

context.XML(Person{Name: "Davie", Age: 18})

返回html格式数据

context.HTML(" Davie, 12 ")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值