Tags: swift-server/swift-openapi-async-http-client
Tags
Handle large payloads on 32bit platforms gracefully (#29) Handle large payloads on 32bit platforms gracefully ### Motivation If there's a request payload with a number of bytes that can't fit into 32 bits, we'd crash. ### Modifications Use a graceful initializer and use `.unknown` (so no `content-length` will be sent) if the size exceeds the max of a 32bit int. ### Result No crash for large payloads on 32bit platforms. ### Test Plan Tests pass. Reviewed by: dnadoba Builds: ✔︎ pull request validation (5.10) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #29
[AHC Transport] Async bodies + swift-http-types adoption (#16) [AHC Transport] Async bodies + swift-http-types adoption ### Motivation AHC transport changes of the approved proposals apple/swift-openapi-generator#255 and apple/swift-openapi-generator#254. ### Modifications - Adapts to the runtime changes, depends on HTTPTypes now. - Both request and response streaming works. ### Result Transport works with the 0.3.0 runtime API of. ### Test Plan Adapted tests. Reviewed by: dnadoba, simonjbeaumont Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #16
Adopt a custom shared client (#18) ### Motivation We previously defaulted the HTTPClient to .init(), but that's not correct as it was never getting shut down. ### Modifications Instead of creating a new client, just introduce our own shared one and use that as the default value. Once AHC provides a shared client, we can default to that in the configuration initializer. ### Result No more crashing clients on dealloc. ### Test Plan All tests pass. --------- Co-authored-by: David Nadoba <[email protected]>
Fix double encoding of path parameters (#15) Fix double encoding of path parameters ### Motivation Fixes apple/swift-openapi-generator#251. ### Modifications Use the already escaped path setter on `URLComponents` to avoid the second encoding pass. ### Result Path parameters that needed escaping are only escaped once, not twice. ### Test Plan Adapted the existing unit test to cover a path item that needs escaping. Reviewed by: simonjbeaumont Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #15
Docs fixes (#14) Docs fixes ### Motivation Docs should be correct. ### Modifications Update docs to reflect the new version. ### Result N/A ### Test Plan N/A Reviewed by: dnadoba Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #14
Prepare being compatible with runtime 0.2.0 release (#12) Prepare being compatible with runtime 0.2.0 release ### Motivation Runtime 0.2.0 is compatible with 0.1.3+ in the APIs adopted in the transport, so just reflect that in the manifest. ### Modifications Increased the supported runtime range to include 0.2.x. ### Result Once released, folks will be able to use 0.1.x of this transport with both 0.1.x and 0.2.x of runtime. ### Test Plan Will be manually tested once runtime 0.2.0 is released. Reviewed by: gjcairo Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #12
Prepare being compatible with runtime 0.2.0 release (#12) Prepare being compatible with runtime 0.2.0 release ### Motivation Runtime 0.2.0 is compatible with 0.1.3+ in the APIs adopted in the transport, so just reflect that in the manifest. ### Modifications Increased the supported runtime range to include 0.2.x. ### Result Once released, folks will be able to use 0.1.x of this transport with both 0.1.x and 0.2.x of runtime. ### Test Plan Will be manually tested once runtime 0.2.0 is released. Reviewed by: gjcairo Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #12
Adopt the new shared HTTP client (#13) Adopt the new shared HTTP client ### Motivation Now that SwiftNIO/AsyncHTTPClient have a singleton variant of the `EventLoopGroup`, which allows creating an `HTTPClient` without any argument, let's simplify the initializer of the transport to take advantage of it - bringing it in line with the URLSession transport. ### Modifications Default the HTTPClient to a new one with a default event loop group, and remove the mandatory shutdown call. ### Result Adopters can more easily create the AHC transport. ### Test Plan N/A Reviewed by: dnadoba, glbrntt Builds: ✔︎ pull request validation (5.8) - Build finished. ✔︎ pull request validation (5.9) - Build finished. ✔︎ pull request validation (nightly) - Build finished. ✔︎ pull request validation (soundness) - Build finished. #13
PreviousNext