博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PhalGo-Request
阅读量:6911 次
发布时间:2019-06-27

本文共 1867 字,大约阅读时间需要 6 分钟。

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有好的想法或者是有好的意见随时可以联系我!

转载地址:http://mabcl.baihongyu.com/

你可能感兴趣的文章
双亲委派的认识
查看>>
Spring Cloud Spring Boot mybatis分布式微服务云架构(一)快速入门
查看>>
iOS雪花动画、音频图、新闻界面框架、2048游戏、二维码条形码扫码生成等源码...
查看>>
深入理解Java自带的线程池和缓冲队列
查看>>
【C++】智能指针简述(三):scoped_ptr
查看>>
Gogs:可能是比Gitlab更好的选择
查看>>
金融壹账通陈敏如:科技助力普惠金融 构建东南亚数字金融生态圈
查看>>
Node.js RESTful API
查看>>
Linux快速入门(一)
查看>>
IT兄弟连 JavaWeb教程 ElasticSearch在Linux下的安装和启动、常见问题解决
查看>>
spring cloud+docker+jenkins 自动化构建(2)
查看>>
iOS核心动画笔记3-视觉效果
查看>>
Ubuntu17 Jdk8 Tomcat64位环境搭建
查看>>
程序员也可以设计高大尚的xmind思维导图
查看>>
#生活琐事# 关于元宵节,红茶童鞋的记事
查看>>
OSChina 娱乐弹弹弹——程序猿眼中的女人
查看>>
OSChina 周二乱弹 —— 世界这么大,老板想让你去看看
查看>>
OSChina 周日乱弹 ——缘小小断腿记
查看>>
OSChina 周五乱弹 ——遇到这事是得抽根烟冷静一下!
查看>>
OSChina 周五乱弹 —— 动弹的起源
查看>>