Add ingress-client API with typed reqwest clients, docs, and integration coverage#100
Open
robertream wants to merge 5 commits intorestatedev:mainfrom
Open
Add ingress-client API with typed reqwest clients, docs, and integration coverage#100robertream wants to merge 5 commits intorestatedev:mainfrom
robertream wants to merge 5 commits intorestatedev:mainfrom
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
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. |
Author
|
I have read the CLA Document and I hereby sign the CLA |
Open
Open
Contributor
|
Thanks a lot for creating this PR @robertream. It's quite a piece of work you have contributed 👏 We will probably need a little bit of time for reviewing your design and the code. Having typed clients for Rust would be kick-ass :-) cc @slinkydeveloper for your input. |
e4f59f0 to
3a19a46
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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