PhalGo-Request

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

时间: 2024-11-03 02:23:41

PhalGo-Request的相关文章

多次请求会创建多个request对象吗?

问题描述 多次请求会创建多个request对象吗? 两种情况:1)我多次向同一应用发送不同请求2)多人向同一应用发送请求 解决方案 两种情况都会创建多个request. 解决方案二: http有keepalive

request常用方法

今天在修改bug时,发现程序使用了 request.getScheme() .不明白是什么意思,在google 搜索了一下.现在明白了.整理如下: 1.request.getScheme() 返回当前链接使用的协议:比如,一般应用返回http;SSL返回https; 2.在程序中的应用如下: Java代码   String path = request.getContextPath();      String basePath = request.getScheme()+"://"+

nginx-the plain http request was sent to https port

问题描述 the plain http request was sent to https port 更新war包后,一个页面跳转的时候报the plain http request was sent to https port,大家帮忙看看该怎么解决. 服务器ip:192.168.11.193 nginx配置: .... upstream server { ip_hash; server 127.0.0.1:8080 fail_timeout=5s; } server { listen 844

dojo/request模块整体架构解析

总体说明 做前端当然少不了ajax的使用,使用dojo的童鞋都知道dojo是基于模块化管理的前端框架,其中对ajax的处理位于dojo/request模块.一般情况下我们使用ajax请求只需要引入dojo/request模块,然后按照文档的说明制定参数即可.实际上dojo在这一模块的处理中抽象了很多概念: 平台侦探器:dojo/request/default 请求分发器:dojo/request/registry 全局通知器:dojo/request/notify 数据传输器:dojo/requ

http request乱码的真相

当然,终极原因http协议里没有规定request一定要指定编码,导致浏览器,web服务器都各搞一套-- 下面一一理清. 首先,从浏览器端看下有多少种情况: 1.在浏览器的地址栏,或者搜索框里输入地址:http://www.test.com/衣服/search?keyword=T恤  2.在一个指定了编码的网页中,提交一个form,如: <html> <head> <meta charset="gbk"> </head> <body

pushlet-Pushlet: bad request

问题描述 Pushlet: bad request 页面展示如图所示,连续不停的点击[注册]按钮,点击[注册]按钮时调用reg()函数,关于reg()函数见下面的源码 页面报如下错误:后台报如下错误:Pushlet[WARN] Pushlet: bad request no id specified event=refresh请高手帮忙解决下,谢谢, 源代码如下所示:后台代码java代码:public class HelloWorldEventPullSource implements Seri

php错误提示failed to open stream: HTTP request failed!的完美解决方法

google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On 这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可.)重启服务器. 但是有些还是会有这个警告信息,想用完美的解决

android studio导入时出现HTTP/1.1 400 Bad Request错误

问题描述 android studio导入时出现HTTP/1.1 400 Bad Request错误 导入时就出现这个问题,然后没有办法运行,代码是从github直接下的,不知道有没有什么要改的地方,求大神帮忙 解决方案 HTTP/1.1 400 Bad Request 解决方案二: 错误的全程是这样Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"

使用XMLHTTP Request Object获取服务器数据

object|request|xml|服务器|数据   在Web客户端使用xmlhttp对象,可以十分方便的和服务器交换数据,我们可以获取和发送任何类型的数据,甚至二进制数据到服务器上.xmlhttp技术同时也是目前大多数无刷新页面使用的和服务器交换数据的方式,这种方式比以往的隐藏iframe的方法要方便和经济的多.     同时让我们高兴得是xmlhttp并不是IE特有的东西,虽然目前还不是W3C的标准,不过IE, Netscape/Mozilla, 和Safari都支持.在IE中我们使用ne

javascript request:通过javaScript动态创建一个的request服务器请求,

(1).使用<script>构造的request请求可以解决跨域的问题,而使用ifame也可以构造请求不过有时浏览器不支持iframe的跨域访问,所以大家在使用的时候就要根据自己的实际情况去选择应该使用那一种了 try{                   varscript_el=document.createElement("script");                   script_el.type="text/javascript";