From 5b7db23aaacbb08a8242b1a77bd39bc19139526c Mon Sep 17 00:00:00 2001 From: Alex Shpak Date: Sun, 30 Sep 2018 01:31:24 +0200 Subject: Add exampleSite --- exampleSite/content/docs/rx-jersey-server.md | 64 ++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 exampleSite/content/docs/rx-jersey-server.md (limited to 'exampleSite/content/docs/rx-jersey-server.md') diff --git a/exampleSite/content/docs/rx-jersey-server.md b/exampleSite/content/docs/rx-jersey-server.md new file mode 100644 index 0000000..105e581 --- /dev/null +++ b/exampleSite/content/docs/rx-jersey-server.md @@ -0,0 +1,64 @@ +## Jersey Server +Register `RxJerseyServerFeature` in `resourceConfig` +```java +resourceConfig.register(RxJerseyServerFeature.class); +``` +Or with configuration +```java +RxJerseyServerFeature rxJerseyServerFeature = new RxJerseyServerFeature() + .register(AuthInterceptor.class); + +resourceConfig.register(rxJerseyServerFeature); +``` + +Update your resource adding rx return type: +```java +@Path("/") +public class HelloResource { + + @GET + public Single getAsync() { + return Single.just(new HelloEntity()); + } + + + public static class HelloEntity { + public String hello = "world"; + } +} +``` + +## Inteceptor +You can use RxJava enabled interceptors. Result of such interceptor will be ignored. Thrown or returned error would be redirected to jersey. + +#### RxJava +```java +public class SimpleInterceptor implements ObservableRequestInterceptor { + public Observable intercept(ContainerRequestContext requestContext) { + return Observable.empty(); + } +} +``` + +#### RxJava 2 +```java +public class SimpleInterceptor implements CompletableRequestInterceptor { + public Completable intercept(ContainerRequestContext requestContext) { + return Observable.complete(); + } +} +``` + + +## Important notes +#### RxJava + - It's recommended to use `rx.Single` as return type (Representing single response entity). + - Multiple elements emitted in `Observable` will be treated as error. + - Empty `Observable` or `null` value in `Observable` or `Single` will be treated as `204: No content`. + - `Completable` will be executed and `204: No content` will be returned. + +#### RxJava 2 + - It's recommended to use `io.reactivex.Maybe` which could be 0 or 1 item or an error. + - Multiple elements emitted in `Observable` or `Flowable` will be treated as error. + - Empty `Observable`/`Maybe` will be treated as `204: No content`. + - `Completable` will be executed and `204: No content` will be returned. -- cgit v1.2.3