v3 Release Candidate 1
v3 Guide
- Upgrade Guide: https://resty.dev/docs/upgrading-to-v3/
Bug Fixes
- fix: request-level retry delay strategy and execution order of retry hooks and conditions #1033 by @jeevatkm in #1096
- fix: improve error handling in the multipart request failure #1030 by @jeevatkm in #1101
- fix: hedging cover rate limit by @ahmet2mir in #1103
- fix: Deepcopy header in createRawRequest by @Kodecable in #1105
- fix: case sensitive issue in decompresser, encoder, and decoder #1111 by @jeevatkm in #1113
- fix: hedging double wrap by @jeevatkm in #1118
- fix: gzip reader pool usage panic with corrupt data response body and similar approach for deflate reader by @jeevatkm in
- fix: sse request body issue on retry by @jeevatkm in #1126
- security: strip sensitive headers on cross-domain redirects by default by @Den-Sec in #1136
- fix: return error for non-seekable readers on request retry by @mcanevet in #1133
- fix: new circuit breaker method return type by @jeevatkm in #1139
- fix: sending digest auth sending invalid userhash field by @issuj in #1140
- fix: unwrap restyError to an error slice by @pior in #1155
- fix: content-disposition values are sanitized and absolute path, parent-directory travesal segments are rejected by @jeevatkm in #1157
- fix: separate URL from -F/-d in buildCurlCmd output by @c-tonneslan in #1165
Features & Enhancements
- feat: Add support for
SetXXXAnymethods for headers, query parameters, and path parameters. by @pscheid92 in #1098 - feat(hedging): support hedging in order to reduce latency when quering endpoints by @ahmet2mir in #1081
- feat(enhancement)!: lb next method with context usage by @jeevatkm in #1117
- feat(ehancement): make fair context deadline for all hedged requests by @jeevatkm in #1119
#1120 - feat(enhancement): add resetter interface, call reset appropriately, improve code, and test by @jeevatkm in #1124
- feat(enhancement): optimize code flow, improve and test cases by @jeevatkm in #1129
- feat(enhancement)!: remove HTTP status code check and add new exported retry condition for status codes #1080 by @jeevatkm
- feat(enhancement): add redirect header strip sensitive policy #1128 by @jeevatkm in #1134
- feat: Add SetLabel() to be discoverable to metrics by @xxtanisxx in #1123
- feat(enhancement): add interface(s) into circuit breaker implementation to make it extensible by @jeevatkm in #1138
- feat: use go's ootb function and package by @jeevatkm in #1145
- feat(enhancement): make hedging implementation to use an interface by @jeevatkm in #1147
- feat: add built-in rate limiter implementations by @jeevatkm in #1151
- feat: support SetTransport for SSE by @invzhi in #1150
- feat: support SetContext for SSE by @invzhi in #1154
- feat(enhancement)!: Return ErrReaderNotSeekable instead of sending empty bodies on retry by @pior in #1156
- feat(enhancement)!: do not strip the port from the request URL host for redirect host comparison by @jeevatkm in #1159
- feat(enhancement): honor explicit zeros in min and max retry wait time by @leno23 in #1162
Tests
- test: improve test cases by @jeevatkm in #1099
- test: fix flaky test TestClient_SetRootCertificateWatcher by @pior in #1158
Chores
- refactor: make client hook functions arg as variadic by @jeevatkm in #1093
- refactor: optimize decode json flow by @jeevatkm in #1094
- refactor: naming from retry strategy to retry delay strategy by @jeevatkm in #1095
- refactor(enhancement): streamline error function names and fields #1062 by @jeevatkm in #1097
- refactor: streamline naming conventions to enable and ensure consistent and easy discovery by @jeevatkm in #1106
- refactor: hedging implementation by @jeevatkm in #1114
in #1130 - docs: godoc update and improvements by @jeevatkm in #1131
- chore: version bump to 3.0.0-rc.1 by @jeevatkm in #1170
New Contributors
- @pscheid92 made their first contribution in #1098
- @ahmet2mir made their first contribution in #1081
- @Kodecable made their first contribution in #1105
- @xxtanisxx made their first contribution in #1123
- @Den-Sec made their first contribution in #1136
- @mcanevet made their first contribution in #1133
- @issuj made their first contribution in #1140
- @c-tonneslan made their first contribution in #1165
- @leno23 made their first contribution in #1162
Full Changelog: v3.0.0-beta.6...v3.0.0-rc.1