apache / apache/apisix-go-plugin-runner

request help: Need to rewrite the http request method

Open
#148 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
198
Forks
68
PR merge metrics
No merged PRs in 30d

Description

### Issue description
I need to rewrite the http request method.
I think about two ways, but both failed.
Way 1.
Add a method like "(r *Request) SetPath". As a result , I add a method to Request and call hrc.Req. MutateMethod.
It only changes the object of Request.r and does not change the buffer object(generated by flatbuffer which is a rpc solution of google). The program just use the content of buffer object to call the upstream api.

Way 2.
Based on way1 , there is no function at HTTPReqCall.Rewrite to change the method. I try to use functions of HTTPReqCall.Req to rebuild the buffer. It does't work and lua problems occurred !

Why:

We have some apis using the Get methods, and the client only use POST methods that can't be changed.
Client -> Method(POST) -> configuration in plugins -> Go Runner Plugin -> Method(GET) -> Upstream

screenshots:
![image](https://github.com/apache/apisix-go-plugin-runner/assets/43162021/749c9bf5-5a4c-4ebe-9da1-8c315c548977)

### Environment

* APISIX Go Plugin Runner's version: v0.5.0
* APISIX version: v3.6.0
* Go version: 1.19.5
* OS (cmd: `uname -a`): Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.