PhalGo-Request

喵了个咪_ · · 1236 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

PhalGo-Request

PhalGo-Request对Echo进行了封装,目的是为了减少**获取请求参数,转换类型,判断请求参数有效**此类重复操作带来的代码量,PhalGo-Request支持**Get,Post,Json**三类请求参数,并且使用连贯操作来获取API需要的参数减少重复代码量,.

Request初始化

PhalGo是灵活的你可以使用PhalGo-Request也可以使用Echo原生的参数获取(在使用restful风格的情况需要使用Echo原生获取方式),如果使用PhalGo-Request需要在接口内部进行初始化方可使用:

return func(c echo.Context) error {
    Request := phalgo.Requser{Context:c}
}

获取Get和Post参数

参数两种传递方式想必不用多说大家都之道就是GET和POST方式,我们可以通过以下方式来获取GET或POST请求参数:

//获取get请求参数,接受string类型
id := Request.GetParam("id").GetString()
//获取post参数,接受string类型   
id := Request.PostParam("id").GetString()

当然如果你不想区分get和post参数可以这样使用,优先级GET->POST

id := Request.Param("id").GetString()

在获取请求的时候在最后一步需要指定你获取请求参数的类型,PhalGo-Request现支持三种类型的获取,**String,Int,Float**帮助你更加方便的处理参数类型不需要自己进行类型转换多余的操作,使用方法分别如下:

id := Request.PostParam("id").GetString()
id := Request.PostParam("id").GetInt()
id := Request.PostParam("id").GetFloat()

处理Json参数

说道请求处理还有一个不得不说的请求类型那就是Json,我们在很多复杂的业务情况下接口需要接受一个列表?那当然会是一个json对象,比如说我们要对请求参数进行加密,我们通常会把所有的请求参数放到一个json中进行加密然后传递过来解密之后使用,所以json在请求参数处理中是必不可少的,PhalGo-Request也是意识到了这一点对json处理进行了封装,我们来看一下最简单的从请求参数中来获取json参数的一个小例子:

//通过get请求获取params的json字符串
params := Request.GetParam("params").GetString()
//注入Json字符串   
Request.SetJson(params)
//通过JsonParam和GetJsonString来获取想要的参数想要的类型
id := Request.JsonParam("user.id").GetJsonString()

我们在获取Json参数时需要使用JsonParam函数JsonParam接受一个字符串,字符串通过"."隔开代表了获取json的层级关系,为了更好的说明有入下一个例子:

json := `{
    "userlist": {
        "miaomi": {
            "username": "喵了个咪"
        }
    }
}`
Request.SetJson(json)
//这样就能获取到字符串"喵了个咪"
Request.JsonParam("userlist.miaom.usernamei").GetJsonString()

Json也同样支持**String,Int,Float**类型分表也只需要使用对应的**GetJsonString,GetJsonInt,GetJsonFloat** ,除此之外Json类型还多一个类型那就是json类型**GetJson**方法,GetJson会返回一个JS实例,我们可以通过JS实例来获取更多的类型比如切片,Map等类型.

关于JS实例更多处理可以查看后续的PhalGo-Json或者是查看源代码

小结

有的童鞋会问如果我获取的是Int类型但是参数传递的是中文字符要怎么处理呢,或者说是这个参数必须传递需要自己验证吗,这些问题都留到下一节的**参数验证过滤**来给大家解答.

如果大家对PhalGo有好的想法或者是有好的意见随时可以联系我!


有疑问加站长微信联系(非本文作者)

本文来自:云栖社区

感谢作者:喵了个咪_

查看原文:PhalGo-Request

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1236 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传