request-convert

<p class="shortdesc">request-convert主要用于将请求中的querystring转换成cookie/header,或者是将cookie/header转换成querystring,然后传入后端。</p> <p class="p">插件必须选择全局插件,因为涉及到header、cookie、query的重写。可以通过whitelist、blacklist过滤请求。</p> <p class="p"><strong class="ph b">2.0.7及以上版本支持。</strong></p> <section class="section" id="request-convert__section_e53_gzd_fsb"><h2 class="doc-tairway">配置说明</h2> <ol class="ol" id="request-convert__ol_jgf_hzd_fsb"> <li class="li"><strong class="ph b">配置参数说明</strong><table class="table" id="request-convert__table_rvw_hzd_fsb"><caption></caption><colgroup><col><col><col></colgroup><thead class="thead"> <tr class="row"> <th class="entry align-left" id="request-convert__table_rvw_hzd_fsb__entry__1">参数名</th> <th class="entry align-left" id="request-convert__table_rvw_hzd_fsb__entry__2">类型</th> <th class="entry align-left" id="request-convert__table_rvw_hzd_fsb__entry__3">参数说明</th> </tr> </thead><tbody class="tbody"> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">parameter_cookie</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">将query写入到cookie中,有的queyr存在数组类型,只是将数组第一个值写入cookie中。默认会覆盖已经存在的同名cookie</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">parameter_cookie_cover</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">boolean</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">是否覆盖已经存在的同名cookie,默认为true</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">parameter_header</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">将query写入到header中。如果已经存在同名header,默认是覆盖已经有的header</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">parameter_header_append</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">boolean</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">是否append到已经有的header中,默认为false</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">header_parameter</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">将header写入到query中。如果已经存在同名query,默认是覆盖已经有的header</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">header_parameter_append</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">boolean</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">是否append到已经有的query中,默认为false</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">cookie_parameter</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">将cookie写入到query中。如果已经存在同名query,默认是覆盖已经有的header</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">cookie_parameter_append</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">boolean</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">是否append到已经有的query中,默认为false</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">whitelist</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">需要插件过滤的白名单,正则匹配</td> </tr> <tr class="row"> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__1 ">blacklist</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__2 ">array</td> <td class="entry align-left" headers="request-convert__table_rvw_hzd_fsb__entry__3 ">需要插件过滤的黑名单,正则匹配</td> </tr> </tbody></table></li> <li class="li"><strong class="ph b">具体示例</strong><pre class="pre codeblock" id="request-convert__codeblock_r11_jzd_fsb"><code>{ "parameter_cookie": [], "parameter_cookie_cover": true, "parameter_header": [], "parameter_header_append": false, "cookie_parameter": [ "cookiekey" ], "cookie_parameter_append": false, "header_parameter": [], "header_parameter_append": false, "whitelist": [], "blacklist": [] }</code></pre></li> </ol> </section> <section class="section" id="request-convert__section_wxl_jzd_fsb"><h2 class="doc-tairway">场景案例</h2><strong class="ph b">通过传入参数将请求分发到不同的后端服务集群。</strong><ol class="ol" id="request-convert__ol_jmv_nzd_fsb"> <li class="li">将参数转化为header/cookie。<img class="image" id="request-convert__image_mhc_5zd_fsb" src="https://obs-cn-shanghai.fincloud.pinganyun.com/pacloud/20220910180811-181ccc8291d0.png" width="800"></li> <li class="li">添加代理服务,并且配置cookie限制条件。<p class="p">此处的paramKey即对应插件中。</p><p class="p"><img class="image" id="request-convert__image_bkl_d12_fsb" src="https://obs-cn-shanghai.fincloud.pinganyun.com/pacloud/20220910180812-1a98f90c968f.png" width="800"></p></li> </ol></section> <section class="section" id="request-convert__section_jpy_212_fsb"><h2 class="doc-tairway">使用小贴士</h2> <p class="p">如果需要通过请求参数做灰度代理,可以通过这个插件将query转换为header/cookie,然后在代理服务端设置header/cookie的灰度代理(当前不支持直接通过parameter做灰度代理)。</p> </section>
以上内容是否解决了您的问题?
请补全提交信息!
联系我们

电话咨询

400-151-8800

邮件咨询

fincloud@ocft.com

在线客服

工单支持

解决云产品相关技术问题