Skip to content

Streaming support in Udash REST #1338

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 26 commits into
base: master
Choose a base branch
from
Draft

Streaming support in Udash REST #1338

wants to merge 26 commits into from

Conversation

sebaciv
Copy link
Contributor

@sebaciv sebaciv commented Mar 27, 2025

Enable returning monix.Observable in REST RPC traits and stream response when sending it over the wire.

State of this pull request (missing items):

  • error / corner case handling
  • comprehensive unit tests
  • ScalaDocs
  • Examples for documentation
  • Sttp implementation integration (*optional?)
  • Json list streaming on client side (*optional)

@sebaciv sebaciv self-assigned this Mar 27, 2025
@sebaciv sebaciv requested a review from ddworak March 27, 2025 16:07
@ddworak
Copy link
Member

ddworak commented Apr 2, 2025

Since @mrzysztof is taking over this, I think @sebaciv could review. I'll take a look but won't have the time to be the primary reviewer here.

@ddworak ddworak assigned mrzysztof and unassigned sebaciv Apr 2, 2025
@@ -129,6 +146,52 @@ trait RestApiTestScenarios extends RestApiTest {
}
}

class DirectRestApiTest extends RestApiTestScenarios {
def clientHandle: HandleRequest = serverHandle
// TODO streaming MORE tests: cancellation, timeouts, errors, errors after sending a few elements, custom format, slow source observable
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't find tests for mid-stream Observable cancellation (both server and client side), is this corner case unhandled?

Copy link

@mrzysztof mrzysztof Apr 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tinkered with that, but in the end, I am not really sure what the expected outcome is here.
Suppose we cancel the subscription from the client. What do we want to test here?

@sebaciv sebaciv assigned ddworak and unassigned mrzysztof Apr 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants