swaggest / rest

Web services with OpenAPI and JSON Schema done quick in Go
https://pkg.go.dev/github.com/swaggest/rest
MIT License
374 stars 17 forks source link

Fix web.Handle with all available HTTP methods #201

Closed vearutop closed 8 months ago

github-actions[bot] commented 8 months ago

Lines Of Code

Language Files Lines Code Comments Blanks Complexity Bytes
Go 113 8748 (+14) 6308 (+11) 660 1780 (+3) 1044 (+5) 213.8K (+294B)
Go (test) 55 6680 (+2) 5125 (+1) 295 1260 (+1) 188 182.4K (+61B)
JSON 3 1999 (+139) 1999 (+139) 0 0 0 76K (+4.2K)
github-actions[bot] commented 8 months ago

Go API Changes

# summary
Inferred base version: v0.2.65
Suggested version: v0.2.66
github-actions[bot] commented 8 months ago

Unit Test Coverage

total: (statements) 81.2% changed lines: (statements) 75.0%, coverage is less than 90.0%, consider testing the changes more thoroughly

Coverage of changed lines | File | Function | Coverage | |--------------------------------|-------------------|----------| | Total | | 75.0% | | nethttp/openapi.go | | 77.8% | | nethttp/openapi.go:13 | OpenAPIMiddleware | 93.6% | | response/gzip/middleware.go | | 66.7% | | response/gzip/middleware.go:29 | Middleware | 100.0% |
Coverage diff with base branch | File | Function | Base Coverage | Current Coverage | |--------------------|-------------------|---------------|------------------| | Total | | 81.2% | 81.2% (0.0%) | | nethttp/openapi.go | OpenAPIMiddleware | 80.0% | 81.2% (+1.2%) |
github-actions[bot] commented 8 months ago

Benchmark Result

Benchmark diff with base branch ``` name old time/op new time/op delta pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 1.10µs ± 1% 1.10µs ± 0% ~ (p=1.000 n=6+6) pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 484ns ± 1% 491ns ± 1% +1.52% (p=0.004 n=6+5) DecoderFunc_Decode-4 1.45µs ± 1% 1.46µs ± 0% +0.92% (p=0.016 n=5+4) Decoder_Decode_json-4 18.4µs ± 0% 18.4µs ± 0% ~ (p=0.177 n=6+5) Decoder_Decode_queryObject-4 3.90µs ± 0% 3.89µs ± 0% ~ (p=0.082 n=6+6) Decoder_Decode_jsonParam-4 1.51µs ± 0% 1.50µs ± 0% -0.83% (p=0.002 n=6+6) DecoderFactory_SetDecoderFunc-4 1.27µs ± 1% 1.27µs ± 1% ~ (p=0.673 n=6+6) pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 8.33µs ± 0% 8.37µs ± 1% ~ (p=0.421 n=5+5) Middleware_control-4 2.76µs ± 2% 2.72µs ± 1% ~ (p=0.095 n=5+6) name old alloc/op new alloc/op delta pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 2.46kB ± 0% 2.46kB ± 0% ~ (all equal) pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 440B ± 0% 440B ± 0% ~ (all equal) DecoderFunc_Decode-4 1.51kB ± 0% 1.51kB ± 0% ~ (all equal) Decoder_Decode_json-4 12.3kB ± 0% 12.3kB ± 0% ~ (all equal) Decoder_Decode_queryObject-4 2.00kB ± 0% 2.00kB ± 0% ~ (all equal) Decoder_Decode_jsonParam-4 736B ± 0% 736B ± 0% ~ (all equal) DecoderFactory_SetDecoderFunc-4 1.02kB ± 0% 1.02kB ± 0% ~ (all equal) pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 1.28kB ± 5% 1.28kB ± 6% ~ (p=1.000 n=6+6) Middleware_control-4 11.2kB ± 0% 11.2kB ± 0% ~ (all equal) name old allocs/op new allocs/op delta pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 8.00 ± 0% 8.00 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 4.00 ± 0% 4.00 ± 0% ~ (all equal) DecoderFunc_Decode-4 12.0 ± 0% 12.0 ± 0% ~ (all equal) Decoder_Decode_json-4 177 ± 0% 177 ± 0% ~ (all equal) Decoder_Decode_queryObject-4 36.0 ± 0% 36.0 ± 0% ~ (all equal) Decoder_Decode_jsonParam-4 12.0 ± 0% 12.0 ± 0% ~ (all equal) DecoderFactory_SetDecoderFunc-4 16.0 ± 0% 16.0 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 11.0 ± 0% 11.0 ± 0% ~ (all equal) Middleware_control-4 9.00 ± 0% 9.00 ± 0% ~ (all equal) ```
Benchmark result ``` name time/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 1.10µs ± 0% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 491ns ± 1% DecoderFunc_Decode-4 1.46µs ± 0% Decoder_Decode_json-4 18.4µs ± 0% Decoder_Decode_queryObject-4 3.89µs ± 0% Decoder_Decode_jsonParam-4 1.50µs ± 0% DecoderFactory_SetDecoderFunc-4 1.27µs ± 1% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 8.37µs ± 1% Middleware_control-4 2.72µs ± 1% name alloc/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 2.46kB ± 0% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 440B ± 0% DecoderFunc_Decode-4 1.51kB ± 0% Decoder_Decode_json-4 12.3kB ± 0% Decoder_Decode_queryObject-4 2.00kB ± 0% Decoder_Decode_jsonParam-4 736B ± 0% DecoderFactory_SetDecoderFunc-4 1.02kB ± 0% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 1.28kB ± 6% Middleware_control-4 11.2kB ± 0% name allocs/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-4 8.00 ± 0% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-4 4.00 ± 0% DecoderFunc_Decode-4 12.0 ± 0% Decoder_Decode_json-4 177 ± 0% Decoder_Decode_queryObject-4 36.0 ± 0% Decoder_Decode_jsonParam-4 12.0 ± 0% DecoderFactory_SetDecoderFunc-4 16.0 ± 0% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-4 11.0 ± 0% Middleware_control-4 9.00 ± 0% ```
codecov[bot] commented 8 months ago

Codecov Report

Attention: Patch coverage is 64.28571% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 76.01%. Comparing base (45ef3c6) to head (a500f68). Report is 2 commits behind head on master.

Files Patch % Lines
nethttp/openapi.go 64.28% 2 Missing and 3 partials :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #201 +/- ## ========================================== - Coverage 76.10% 76.01% -0.10% ========================================== Files 30 30 Lines 1724 1730 +6 ========================================== + Hits 1312 1315 +3 - Misses 297 298 +1 - Partials 115 117 +2 ``` | [Flag](https://app.codecov.io/gh/swaggest/rest/pull/201/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=swaggest) | Coverage Δ | | |---|---|---| | [unittests](https://app.codecov.io/gh/swaggest/rest/pull/201/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=swaggest) | `76.01% <64.28%> (-0.10%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=swaggest#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 8 months ago

Examples Benchmark Result

Benchmark diff with base branch ``` name old time/op new time/op delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 17.3µs ±16% 16.8µs ± 8% ~ (p=1.000 n=5+5) _directGzipHead-4 16.2µs ± 1% 16.1µs ± 1% ~ (p=0.690 n=5+5) _noDirectGzip-4 91.4µs ± 1% 91.5µs ± 0% ~ (p=0.548 n=5+5) _directGzip_decode-4 324µs ± 1% 327µs ± 1% ~ (p=0.056 n=5+5) _noDirectGzip_decode-4 92.4µs ± 1% 91.7µs ± 0% ~ (p=0.056 n=5+5) _jsonBody-4 34.9µs ± 1% 35.0µs ± 1% ~ (p=0.222 n=5+5) _jsonBodyValidation-4 40.2µs ± 1% 40.3µs ± 1% ~ (p=0.222 n=5+5) _outputHeaders-4 16.8µs ± 0% 16.9µs ± 2% ~ (p=0.548 n=5+5) _requestResponseMapping-4 34.7µs ± 1% 34.6µs ± 1% ~ (p=0.690 n=5+5) _validation-4 37.1µs ± 2% 37.8µs ± 5% ~ (p=0.222 n=5+5) _noValidation-4 26.1µs ± 1% 26.1µs ± 1% ~ (p=0.690 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 16.7µs ± 0% 16.5µs ± 0% -1.16% (p=0.016 n=4+5) _directGzipHead-4 16.7µs ± 2% 16.9µs ± 9% ~ (p=0.548 n=5+5) _noDirectGzip-4 93.2µs ± 1% 92.3µs ± 1% -0.99% (p=0.032 n=5+5) _directGzip_decode-4 326µs ± 1% 327µs ± 1% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 93.3µs ± 1% 93.1µs ± 2% ~ (p=0.310 n=5+5) _htmlResponse-4 29.9µs ± 1% 29.8µs ± 1% ~ (p=0.310 n=5+5) _jsonBodyManual-4 21.0µs ± 1% 20.9µs ± 0% ~ (p=0.881 n=5+5) _jsonBody-4 31.3µs ± 1% 31.4µs ± 1% ~ (p=0.548 n=5+5) _jsonBodyValidation-4 40.7µs ± 1% 40.7µs ± 1% ~ (p=0.841 n=5+5) _outputHeaders-4 29.7µs ± 3% 29.0µs ± 1% -2.15% (p=0.008 n=5+5) _requestResponseMapping-4 34.4µs ± 0% 34.2µs ± 2% ~ (p=0.730 n=4+5) _validation-4 36.6µs ± 2% 37.0µs ± 1% ~ (p=0.151 n=5+5) _noValidation-4 26.2µs ± 2% 26.5µs ± 1% ~ (p=0.095 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 18.5µs ± 1% 19.0µs ± 9% ~ (p=0.310 n=5+5) _ok-4 18.9µs ± 9% 18.6µs ± 2% ~ (p=0.841 n=5+5) _invalidBody-4 26.9µs ± 4% 27.0µs ± 3% ~ (p=1.000 n=5+5) name old 50%:ms new 50%:ms delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 0.75 ± 8% 0.73 ± 6% ~ (p=0.310 n=5+5) _directGzipHead-4 0.74 ± 5% 0.74 ± 5% ~ (p=0.841 n=5+5) _noDirectGzip-4 4.17 ± 3% 4.27 ± 4% ~ (p=0.421 n=5+5) _directGzip_decode-4 10.7 ± 8% 10.9 ±12% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 4.21 ± 4% 4.32 ± 3% ~ (p=0.095 n=5+5) _jsonBody-4 1.47 ± 5% 1.45 ± 4% ~ (p=0.381 n=5+5) _jsonBodyValidation-4 1.64 ± 2% 1.71 ± 5% ~ (p=0.063 n=5+5) _outputHeaders-4 0.72 ± 5% 0.75 ± 7% ~ (p=0.548 n=5+5) _requestResponseMapping-4 1.35 ± 3% 1.35 ± 4% ~ (p=1.000 n=5+5) _validation-4 1.45 ± 1% 1.51 ± 9% ~ (p=0.548 n=5+5) _noValidation-4 1.07 ±10% 1.06 ± 7% ~ (p=1.000 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 0.75 ± 6% 0.71 ± 4% -5.44% (p=0.032 n=5+5) _directGzipHead-4 0.73 ± 8% 0.75 ± 7% ~ (p=1.000 n=5+5) _noDirectGzip-4 4.30 ± 5% 4.21 ± 5% ~ (p=0.421 n=5+5) _directGzip_decode-4 10.7 ± 4% 10.7 ±12% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 4.17 ± 4% 4.14 ± 3% ~ (p=0.841 n=5+5) _htmlResponse-4 1.28 ± 6% 1.26 ± 5% ~ (p=0.690 n=5+5) _jsonBodyManual-4 0.94 ± 7% 0.90 ± 6% ~ (p=0.548 n=5+5) _jsonBody-4 1.29 ± 6% 1.33 ± 5% ~ (p=0.548 n=5+5) _jsonBodyValidation-4 1.74 ± 2% 1.71 ± 8% ~ (p=0.222 n=5+5) _outputHeaders-4 1.19 ± 5% 1.18 ± 6% ~ (p=0.690 n=5+5) _requestResponseMapping-4 1.39 ± 2% 1.40 ± 4% ~ (p=0.937 n=5+5) _validation-4 1.57 ± 5% 1.51 ± 4% ~ (p=0.222 n=5+5) _noValidation-4 1.11 ± 5% 1.10 ± 6% ~ (p=1.000 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 0.82 ± 4% 0.85 ± 9% ~ (p=0.421 n=5+5) _ok-4 0.85 ± 8% 0.83 ± 4% ~ (p=0.421 n=5+5) _invalidBody-4 1.14 ± 4% 1.13 ± 4% ~ (p=1.000 n=5+5) name old 90%:ms new 90%:ms delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 1.56 ±22% 1.54 ±11% ~ (p=0.841 n=5+5) _directGzipHead-4 1.47 ± 4% 1.46 ± 4% ~ (p=1.000 n=5+5) _noDirectGzip-4 8.67 ± 6% 8.54 ± 3% ~ (p=0.548 n=5+5) _directGzip_decode-4 32.3 ± 7% 31.6 ± 5% ~ (p=0.421 n=5+5) _noDirectGzip_decode-4 8.70 ± 4% 8.58 ± 2% ~ (p=0.421 n=5+5) _jsonBody-4 3.20 ± 3% 3.22 ± 4% ~ (p=1.000 n=5+5) _jsonBodyValidation-4 3.66 ± 6% 3.60 ± 5% ~ (p=0.421 n=5+5) _outputHeaders-4 1.50 ± 6% 1.52 ± 6% ~ (p=0.841 n=5+5) _requestResponseMapping-4 3.19 ± 5% 3.20 ± 3% ~ (p=1.000 n=5+5) _validation-4 3.39 ± 6% 3.53 ± 5% ~ (p=0.222 n=5+5) _noValidation-4 2.46 ± 3% 2.47 ± 3% ~ (p=0.952 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 1.52 ± 5% 1.43 ± 1% -6.04% (p=0.016 n=5+4) _directGzipHead-4 1.51 ± 3% 1.55 ±14% ~ (p=0.690 n=5+5) _noDirectGzip-4 8.97 ± 2% 8.90 ± 4% ~ (p=0.595 n=5+5) _directGzip_decode-4 31.3 ± 3% 32.9 ± 5% ~ (p=0.056 n=5+5) _noDirectGzip_decode-4 8.89 ± 2% 8.83 ± 7% ~ (p=0.310 n=5+5) _htmlResponse-4 2.75 ± 3% 2.74 ± 6% ~ (p=0.452 n=5+5) _jsonBodyManual-4 1.93 ± 5% 1.86 ± 4% ~ (p=0.095 n=5+5) _jsonBody-4 2.94 ± 7% 2.88 ± 3% ~ (p=0.690 n=5+5) _jsonBodyValidation-4 3.80 ± 4% 3.76 ± 6% ~ (p=0.690 n=5+5) _outputHeaders-4 2.84 ± 3% 2.72 ± 4% -4.32% (p=0.048 n=5+5) _requestResponseMapping-4 3.24 ± 7% 3.22 ± 3% ~ (p=1.000 n=5+5) _validation-4 3.37 ± 3% 3.46 ± 5% ~ (p=0.310 n=5+5) _noValidation-4 2.49 ± 3% 2.46 ± 2% ~ (p=0.310 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 1.64 ±10% 1.74 ± 7% ~ (p=0.095 n=5+5) _ok-4 1.70 ±12% 1.69 ± 8% ~ (p=1.000 n=5+5) _invalidBody-4 2.49 ± 8% 2.54 ± 8% ~ (p=0.381 n=5+5) name old 99%:ms new 99%:ms delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 2.91 ±43% 2.54 ±15% ~ (p=0.548 n=5+5) _directGzipHead-4 2.44 ± 4% 2.40 ± 5% ~ (p=0.381 n=5+5) _noDirectGzip-4 13.1 ± 4% 12.9 ± 6% ~ (p=0.841 n=5+5) _directGzip_decode-4 62.7 ±10% 61.8 ±10% ~ (p=0.841 n=5+5) _noDirectGzip_decode-4 13.5 ± 7% 12.9 ± 4% ~ (p=0.063 n=5+5) _jsonBody-4 5.37 ± 8% 5.18 ± 4% ~ (p=0.548 n=5+5) _jsonBodyValidation-4 6.42 ± 7% 6.23 ±11% ~ (p=0.548 n=5+5) _outputHeaders-4 2.66 ± 5% 2.62 ± 6% ~ (p=0.841 n=5+5) _requestResponseMapping-4 5.97 ± 8% 5.65 ±11% ~ (p=0.151 n=5+5) _validation-4 6.42 ± 9% 6.76 ±12% ~ (p=0.310 n=5+5) _noValidation-4 4.56 ±11% 4.41 ± 5% ~ (p=0.310 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 2.59 ±16% 2.42 ± 4% ~ (p=0.151 n=5+5) _directGzipHead-4 2.50 ± 7% 2.72 ±19% ~ (p=0.310 n=5+5) _noDirectGzip-4 13.4 ± 8% 13.5 ± 5% ~ (p=0.690 n=5+5) _directGzip_decode-4 60.8 ± 7% 60.8 ± 7% ~ (p=0.841 n=5+5) _noDirectGzip_decode-4 13.5 ± 4% 14.0 ±10% ~ (p=0.151 n=5+5) _htmlResponse-4 4.99 ± 5% 4.63 ± 6% -7.31% (p=0.032 n=5+5) _jsonBodyManual-4 3.25 ± 7% 3.15 ± 8% ~ (p=0.278 n=5+5) _jsonBody-4 5.16 ± 8% 4.89 ±12% ~ (p=0.222 n=5+5) _jsonBodyValidation-4 6.33 ± 8% 6.41 ± 6% ~ (p=0.690 n=5+5) _outputHeaders-4 4.84 ±10% 4.68 ± 6% ~ (p=0.421 n=5+5) _requestResponseMapping-4 5.23 ± 9% 5.09 ± 8% ~ (p=0.310 n=5+5) _validation-4 5.34 ± 2% 5.39 ± 5% ~ (p=0.841 n=5+5) _noValidation-4 4.15 ± 6% 4.30 ±10% ~ (p=0.452 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 2.62 ± 7% 2.90 ±30% ~ (p=0.222 n=5+5) _ok-4 2.86 ±24% 2.72 ±11% ~ (p=0.548 n=5+5) _invalidBody-4 4.59 ± 6% 4.46 ± 4% ~ (p=0.222 n=5+5) name old 99.9%:ms new 99.9%:ms delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 5.94 ±104% 5.64 ±58% ~ (p=0.841 n=5+5) _directGzipHead-4 4.67 ±30% 3.99 ±14% ~ (p=0.151 n=5+5) _noDirectGzip-4 17.3 ± 6% 17.1 ±16% ~ (p=0.841 n=5+5) _directGzip_decode-4 86.8 ±14% 87.4 ±12% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 18.4 ±13% 16.7 ± 9% ~ (p=0.056 n=5+5) _jsonBody-4 9.11 ±20% 8.25 ± 9% ~ (p=0.222 n=5+5) _jsonBodyValidation-4 9.72 ±12% 9.29 ±14% ~ (p=0.548 n=5+5) _outputHeaders-4 6.00 ±24% 5.14 ±18% ~ (p=0.151 n=5+5) _requestResponseMapping-4 9.12 ± 8% 8.79 ±10% ~ (p=0.548 n=5+5) _validation-4 10.2 ±18% 10.8 ± 8% ~ (p=0.151 n=5+5) _noValidation-4 7.81 ±25% 7.75 ±11% ~ (p=0.841 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 4.96 ±82% 3.93 ±14% ~ (p=0.841 n=5+5) _directGzipHead-4 5.23 ±17% 6.48 ±65% ~ (p=0.548 n=5+5) _noDirectGzip-4 20.1 ±19% 18.9 ±13% ~ (p=0.841 n=5+5) _directGzip_decode-4 80.6 ± 8% 80.5 ±15% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 18.9 ±17% 21.2 ±28% ~ (p=0.421 n=5+5) _htmlResponse-4 8.77 ±22% 7.36 ±17% ~ (p=0.151 n=5+5) _jsonBodyManual-4 6.52 ±18% 5.71 ±18% ~ (p=0.151 n=5+5) _jsonBody-4 8.31 ±11% 7.92 ±16% ~ (p=0.690 n=5+5) _jsonBodyValidation-4 10.0 ± 8% 9.7 ± 5% ~ (p=0.310 n=5+5) _outputHeaders-4 8.78 ±33% 7.24 ±16% ~ (p=0.095 n=5+5) _requestResponseMapping-4 8.17 ±13% 8.89 ± 2% ~ (p=0.111 n=5+4) _validation-4 8.05 ±15% 8.16 ± 8% ~ (p=0.548 n=5+5) _noValidation-4 6.99 ±13% 6.52 ± 7% ~ (p=0.421 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 4.33 ±23% 5.17 ±60% ~ (p=0.421 n=5+5) _ok-4 5.57 ±87% 4.33 ±43% ~ (p=0.310 n=5+5) _invalidBody-4 6.81 ±20% 7.11 ±18% ~ (p=0.690 n=5+5) name old B:rcvd/op new B:rcvd/op delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 630 ± 0% 630 ± 0% ~ (all equal) _directGzipHead-4 174 ± 0% 174 ± 0% ~ (all equal) _noDirectGzip-4 1.03k ± 0% 1.03k ± 0% ~ (all equal) _directGzip_decode-4 630 ± 0% 630 ± 0% ~ (all equal) _noDirectGzip_decode-4 1.03k ± 0% 1.03k ± 0% ~ (all equal) _jsonBody-4 199 ± 0% 199 ± 0% ~ (all equal) _jsonBodyValidation-4 185 ± 0% 185 ± 0% ~ (all equal) _outputHeaders-4 146 ± 0% 146 ± 0% ~ (all equal) _requestResponseMapping-4 94.0 ± 0% 94.0 ± 0% ~ (all equal) _validation-4 168 ± 0% 168 ± 0% ~ (all equal) _noValidation-4 168 ± 0% 168 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 638 ± 0% 638 ± 0% ~ (all equal) _directGzipHead-4 182 ± 0% 182 ± 0% ~ (all equal) _noDirectGzip-4 1.04k ± 0% 1.04k ± 0% ~ (all equal) _directGzip_decode-4 638 ± 0% 638 ± 0% ~ (all equal) _noDirectGzip_decode-4 1.04k ± 0% 1.04k ± 0% ~ (all equal) _htmlResponse-4 355 ± 0% 355 ± 0% ~ (all equal) _jsonBodyManual-4 207 ± 0% 207 ± 0% ~ (all equal) _jsonBody-4 207 ± 0% 207 ± 0% ~ (all equal) _jsonBodyValidation-4 193 ± 0% 193 ± 0% ~ (all equal) _outputHeaders-4 214 ± 0% 214 ± 0% ~ (all equal) _requestResponseMapping-4 108 ± 0% 108 ± 0% ~ (all equal) _validation-4 176 ± 0% 176 ± 0% ~ (all equal) _noValidation-4 176 ± 0% 176 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 322 ± 0% 322 ± 0% ~ (all equal) _ok-4 344 ± 0% 344 ± 0% ~ (p=0.444 n=5+5) _invalidBody-4 420 ± 0% 420 ± 0% ~ (all equal) name old B:sent/op new B:sent/op delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 103 ± 0% 103 ± 0% ~ (all equal) _directGzipHead-4 104 ± 0% 104 ± 0% ~ (all equal) _noDirectGzip-4 117 ± 0% 117 ± 0% ~ (all equal) _directGzip_decode-4 116 ± 0% 116 ± 0% ~ (all equal) _noDirectGzip_decode-4 130 ± 0% 130 ± 0% ~ (all equal) _jsonBody-4 188 ± 0% 188 ± 0% ~ (all equal) _jsonBodyValidation-4 192 ± 0% 192 ± 0% ~ (all equal) _outputHeaders-4 77.0 ± 0% 77.0 ± 0% ~ (all equal) _requestResponseMapping-4 169 ± 0% 169 ± 0% ~ (all equal) _validation-4 170 ± 0% 170 ± 0% ~ (all equal) _noValidation-4 173 ± 0% 173 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 103 ± 0% 103 ± 0% ~ (all equal) _directGzipHead-4 104 ± 0% 104 ± 0% ~ (all equal) _noDirectGzip-4 117 ± 0% 117 ± 0% ~ (all equal) _directGzip_decode-4 116 ± 0% 116 ± 0% ~ (all equal) _noDirectGzip_decode-4 130 ± 0% 130 ± 0% ~ (all equal) _htmlResponse-4 108 ± 0% 108 ± 0% ~ (all equal) _jsonBodyManual-4 195 ± 0% 195 ± 0% ~ (all equal) _jsonBody-4 188 ± 0% 188 ± 0% ~ (all equal) _jsonBodyValidation-4 192 ± 0% 192 ± 0% ~ (all equal) _outputHeaders-4 88.0 ± 0% 88.0 ± 0% ~ (all equal) _requestResponseMapping-4 169 ± 0% 169 ± 0% ~ (all equal) _validation-4 170 ± 0% 170 ± 0% ~ (all equal) _noValidation-4 173 ± 0% 173 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 74.0 ± 0% 74.0 ± 0% ~ (all equal) _ok-4 74.0 ± 0% 74.0 ± 0% ~ (all equal) _invalidBody-4 137 ± 0% 137 ± 0% ~ (all equal) name old rps new rps delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 58.3k ±14% 59.5k ± 7% ~ (p=1.000 n=5+5) _directGzipHead-4 61.9k ± 1% 61.9k ± 1% ~ (p=0.690 n=5+5) _noDirectGzip-4 10.9k ± 1% 10.9k ± 0% ~ (p=0.595 n=5+5) _directGzip_decode-4 3.09k ± 1% 3.06k ± 1% -0.85% (p=0.048 n=5+5) _noDirectGzip_decode-4 10.8k ± 1% 10.9k ± 0% ~ (p=0.056 n=5+5) _jsonBody-4 28.7k ± 1% 28.5k ± 1% ~ (p=0.222 n=5+5) _jsonBodyValidation-4 24.9k ± 1% 24.8k ± 1% ~ (p=0.222 n=5+5) _outputHeaders-4 59.5k ± 0% 59.2k ± 2% ~ (p=0.548 n=5+5) _requestResponseMapping-4 28.8k ± 1% 28.9k ± 1% ~ (p=0.690 n=5+5) _validation-4 27.0k ± 2% 26.4k ± 4% ~ (p=0.222 n=5+5) _noValidation-4 38.4k ± 1% 38.3k ± 1% ~ (p=0.690 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 60.0k ± 0% 60.7k ± 0% +1.17% (p=0.016 n=4+5) _directGzipHead-4 60.0k ± 2% 59.4k ± 8% ~ (p=0.548 n=5+5) _noDirectGzip-4 10.7k ± 1% 10.8k ± 1% +1.00% (p=0.032 n=5+5) _directGzip_decode-4 3.07k ± 1% 3.06k ± 1% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 10.7k ± 1% 10.7k ± 2% ~ (p=0.310 n=5+5) _htmlResponse-4 33.5k ± 1% 33.6k ± 1% ~ (p=0.310 n=5+5) _jsonBodyManual-4 47.7k ± 1% 47.8k ± 0% ~ (p=0.881 n=5+5) _jsonBody-4 31.9k ± 1% 31.8k ± 1% ~ (p=0.548 n=5+5) _jsonBodyValidation-4 24.6k ± 1% 24.6k ± 1% ~ (p=0.841 n=5+5) _outputHeaders-4 33.7k ± 3% 34.5k ± 1% +2.18% (p=0.008 n=5+5) _requestResponseMapping-4 29.0k ± 0% 29.3k ± 2% ~ (p=0.730 n=4+5) _validation-4 27.3k ± 2% 27.0k ± 1% ~ (p=0.151 n=5+5) _noValidation-4 38.2k ± 2% 37.8k ± 1% ~ (p=0.095 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 54.1k ± 1% 52.7k ± 9% ~ (p=0.310 n=5+5) _ok-4 53.0k ± 8% 53.6k ± 2% ~ (p=0.841 n=5+5) _invalidBody-4 37.1k ± 4% 37.1k ± 3% ~ (p=1.000 n=5+5) name old alloc/op new alloc/op delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 3.86kB ± 0% 3.86kB ± 0% ~ (p=0.722 n=5+5) _directGzipHead-4 3.85kB ± 0% 3.85kB ± 0% ~ (p=0.587 n=5+5) _noDirectGzip-4 6.76kB ±14% 6.68kB ±30% ~ (p=0.841 n=5+5) _directGzip_decode-4 404kB ± 0% 404kB ± 0% ~ (p=0.841 n=5+5) _noDirectGzip_decode-4 6.41kB ±12% 6.04kB ±13% ~ (p=0.222 n=5+5) _jsonBody-4 13.2kB ± 0% 13.2kB ± 0% ~ (p=0.738 n=5+5) _jsonBodyValidation-4 19.1kB ± 0% 19.0kB ± 0% ~ (p=0.341 n=5+5) _outputHeaders-4 3.57kB ± 0% 3.58kB ± 0% ~ (p=0.984 n=5+5) _requestResponseMapping-4 16.7kB ± 0% 16.7kB ± 0% ~ (p=1.000 n=5+5) _validation-4 16.6kB ± 0% 16.6kB ± 0% ~ (p=0.198 n=5+5) _noValidation-4 7.79kB ± 0% 7.79kB ± 0% ~ (p=0.722 n=5+5) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 3.87kB ± 0% 3.87kB ± 0% ~ (p=0.603 n=4+5) _directGzipHead-4 3.87kB ± 0% 3.87kB ± 0% ~ (p=1.000 n=5+5) _noDirectGzip-4 7.05kB ±16% 7.25kB ±21% ~ (p=1.000 n=5+5) _directGzip_decode-4 404kB ± 0% 404kB ± 0% ~ (p=0.595 n=5+5) _noDirectGzip_decode-4 6.47kB ±14% 6.48kB ± 5% ~ (p=1.000 n=5+5) _htmlResponse-4 8.07kB ± 0% 8.07kB ± 0% ~ (p=0.389 n=5+5) _jsonBodyManual-4 4.49kB ± 0% 4.48kB ± 0% ~ (p=0.508 n=5+5) _jsonBody-4 10.2kB ± 0% 10.3kB ± 0% ~ (p=0.984 n=5+5) _jsonBodyValidation-4 19.1kB ± 0% 19.1kB ± 0% ~ (p=1.000 n=5+5) _outputHeaders-4 10.4kB ± 0% 10.4kB ± 0% ~ (p=0.452 n=5+5) _requestResponseMapping-4 16.7kB ± 0% 16.7kB ± 0% ~ (p=0.579 n=5+5) _validation-4 16.6kB ± 0% 16.6kB ± 0% ~ (p=0.730 n=5+5) _noValidation-4 7.83kB ± 0% 7.83kB ± 0% ~ (p=0.690 n=5+5) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 4.65kB ± 0% 4.65kB ± 0% -0.04% (p=0.016 n=5+4) _ok-4 4.56kB ± 0% 4.56kB ± 0% ~ (p=1.000 n=4+4) _invalidBody-4 8.28kB ± 0% 8.28kB ± 0% ~ (p=1.000 n=4+4) name old allocs/op new allocs/op delta pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-4 42.0 ± 0% 42.0 ± 0% ~ (all equal) _directGzipHead-4 42.0 ± 0% 42.0 ± 0% ~ (all equal) _noDirectGzip-4 49.2 ± 4% 49.2 ± 4% ~ (p=1.000 n=5+5) _directGzip_decode-4 503 ± 0% 503 ± 0% ~ (p=1.000 n=4+5) _noDirectGzip_decode-4 50.0 ± 0% 50.0 ± 0% ~ (all equal) _jsonBody-4 128 ± 0% 128 ± 0% ~ (p=0.333 n=5+4) _jsonBodyValidation-4 186 ± 0% 186 ± 0% ~ (all equal) _outputHeaders-4 36.0 ± 0% 36.0 ± 0% ~ (all equal) _requestResponseMapping-4 124 ± 0% 124 ± 0% ~ (all equal) _validation-4 155 ± 0% 155 ± 0% ~ (all equal) _noValidation-4 91.0 ± 0% 91.0 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/advanced-generic-openapi31 goos:linux goarch:amd64 _directGzip-4 43.0 ± 0% 43.0 ± 0% ~ (all equal) _directGzipHead-4 43.0 ± 0% 43.0 ± 0% ~ (all equal) _noDirectGzip-4 50.2 ± 4% 50.2 ± 4% ~ (p=1.000 n=5+5) _directGzip_decode-4 504 ± 0% 504 ± 0% ~ (p=1.000 n=5+5) _noDirectGzip_decode-4 51.0 ± 0% 51.0 ± 0% ~ (all equal) _htmlResponse-4 144 ± 0% 144 ± 0% ~ (all equal) _jsonBodyManual-4 48.0 ± 0% 48.0 ± 0% ~ (all equal) _jsonBody-4 99.0 ± 0% 99.0 ± 0% ~ (all equal) _jsonBodyValidation-4 187 ± 0% 187 ± 0% ~ (all equal) _outputHeaders-4 112 ± 0% 112 ± 0% ~ (all equal) _requestResponseMapping-4 125 ± 0% 125 ± 0% ~ (all equal) _validation-4 155 ± 0% 155 ± 0% ~ (all equal) _noValidation-4 92.0 ± 0% 92.0 ± 0% ~ (all equal) pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-4 53.0 ± 0% 53.0 ± 0% ~ (all equal) _ok-4 49.0 ± 0% 49.0 ± 0% ~ (all equal) _invalidBody-4 97.0 ± 0% 97.0 ± 0% ~ (all equal) ```