Make request body readable and changeable in interceptFunc and beforeFunc
Hi!
This PR gives users the ability to access and change request.Body in functions registered with RegisterInterceptFunc and RegisterBeforeFunc. I've already described it in issue #80.
Also, I've added couple of simple tests to check ability to change request data in these functions.
Changes:
- In rpc/v2 close
request.Bodyafter the execution ofbeforeFunc's andinterceptFunc's. Update codec request info after calls to functions above. - Read request body bytes, decode it to codec format and provide
bytes.Bufferandrequest.Bodyfor underlying functions in v2/json, v2/json2 and v2/protorpc codecs.
Of course, exists a better way to do that, but it will require changes in the signature of RegisterInterceptFunc and RegisterBeforeFunc and it would be breaking changes. If both of these methods will have an original *http.Request as input parameter, they could be executed before the creation of codec. In this case, users can access and alter request data, and only after that it would be read by the codec and marshaled to service request params. But since these changes are breaking, it's not an option at the moment, probably it can fit the next version or release.
Would be nice to know your opinion, thanks!