spring-projects / spring-projects/spring-hateoas
Add support for kotlin coroutine suspend functions to WebFluxLinkBuilder
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 476
- PR merge metrics
- No merged PRs in 30d
Description
Currently the only solution that allows HATEOAS to interoperate with suspend coroutine functions is to wrap all output into Mono and Flux (Flow seems to work for some reason too, but it's probably a bad idea to use it without understanding why it works).
In short, implement the following prototype:
fun <reified T> WebFluxLinkBuilder.linkTo(block: suspend T.() -> Any?)
I realize now there's a second problem identified here, which is that the boilerplate for methodOn can be eliminated with reified generics in Kotlin. Perhaps another task can be to add Kotlin extensions when possible?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at WebFluxLinkBuilder and inspect its existing linkTo entry points alongside the current Mono and Flux handling. Implement and validate the proposed suspend-function linkTo prototype so coroutine functions no longer need their output wrapped in Mono or Flux.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin, spring
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100