Add ingress-client API with typed reqwest clients, docs, and integration coverage#100
Add ingress-client API with typed reqwest clients, docs, and integration coverage#100robertream wants to merge 4 commits intorestatedev:mainfrom
Conversation
|
I have read the CLA Document and I hereby sign the CLA Robert Ream seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. |
|
I hadn't read the original issue and PR from a year ago. I updated the implementation to support the "executor" API that was suggested. |
|
I have read the CLA Document and I hereby sign the CLA |
Summary
Adds a new
ingress-clientcapability to the Rust SDK with a typed reqwest-based client API, macro-generated typed ingress clients, and runtime/compile-time test coverage.Included in this commit
New ingress client module
src/ingress.rswith:ClientServerUrl(+TryFromconversions)AuthTokenRequest<Res>RequestErrorMacro-generated typed ingress clients
macros/src/generator.rsto generate typed ingress client impls for services, objects, and workflows.Into*Request,Request<'a>,create_request).Crate exports
src/lib.rsand feature wiring so ingress client APIs are available behindingress-client.Tests
tests/ingress.rsruntime coverage for ingress behavior, including:delay=...msquery serializationtests/compiletest.rstests/ui/ingress-client/*Testcontainers
testcontainers/Cargo.toml.testcontainers/tests/test_container.rsto include a feature-gated typed ingress client integration path alongside the existing HTTP-based one.Documentation
RequestErrorvariants.Validation
cargo test -qcargo test --features ingress-client -qcargo test -p restate-sdk-testcontainers --no-runcargo test -p restate-sdk-testcontainers --features ingress-client --no-run