Kir*_*eda 5 serversocket reactor spring-webflux rsocket rsocket-java
有人可以告诉我或给出一个使用WebFlux、RScoket 和 Spring(或 SpringBoot)的现成 CRUD 示例吗?
我研究了RSocket文档WebFlux,也写了我的简单示例,但我希望看到使用RSocket 的基本方法的真实CRUD应用程序。
我会很感激的。谢谢。
我维护了一个 Spring/RSocket 示例项目,其中包含 RSocket 的 4 种基本交互模式。
如果您只需要简单 CRUD 操作的请求/回复案例,请检查请求和响应模式,并选择传输协议,TCP 或 WebSocket。
要实现CRUD操作,只需为它们定义4个不同的路由,就像使用URI定义RESTful API一样,您必须有一个很好的命名计划,但是在RSocket中没有HTTP方法可以帮助您区分相同的路由。
例如,在服务器端,我们可以声明一个@Controller来处理这样的消息。
@Controller
class ProfileController {
@MessageMapping("fetch.profile.{name}")
public Mono<Profile> greet(@DestinationVariable String name) {
}
@MessageMapping("create.profile")
public Mono<Message> greet(@Payload CreateProfileRequest p) {
}
@MessageMapping("update.profile.{name}")
public Mono<Message> greet(@DestinationVariable String name, @Payload UpdateProfileRequest p) {
}
@MessageMapping("delete.profile.{name}")
public Mono<Message> greet(@DestinationVariable String name) {
}
}
Run Code Online (Sandbox Code Playgroud)
在客户端,如果是 Spring Boot 应用,可以RSocketRequester像这样使用 RSocket与服务器端进行交互。
//fetch a profile by name
requester.route("fetch.profile.hantsy").retrieveMono()
//create a new profile
requester.data(new CreateProfileRequest(...)).route("create.profile").retrieveMono()
//update the existing profile
requester.data(new UpdateProfileRequest(...)).route("update.profile.hantsy").retrieveMono()
//delete a profile
requester.route("delete.profile.hantsy").retrieveMono()
Run Code Online (Sandbox Code Playgroud)
当然,如果你只是构建一个通过 rsocket 协议暴露的服务,客户端可以是一个 rsocket-js 项目,也可以是其他语言和框架,比如 Angular、React 或 Android 等。
更新:我在我的 rsocket 示例代码中添加了一个crud 示例,并且我已经在 Medium 上发表了一篇文章。
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |