aboutsummaryrefslogtreecommitdiff
path: root/exampleSite/content/docs/rx-jersey-server.md
diff options
context:
space:
mode:
authorAlex Shpak <alex-shpak@users.noreply.github.com>2018-09-30 01:31:24 +0200
committerAlex Shpak <alex-shpak@users.noreply.github.com>2018-09-30 01:31:24 +0200
commit5b7db23aaacbb08a8242b1a77bd39bc19139526c (patch)
treeb36f8ab16b89f1ae475db883f3f91b2a0a6837b8 /exampleSite/content/docs/rx-jersey-server.md
parent7a6ab6d72496a07e42aa03242891b6d815b26b0d (diff)
Add exampleSite
Diffstat (limited to 'exampleSite/content/docs/rx-jersey-server.md')
-rw-r--r--exampleSite/content/docs/rx-jersey-server.md64
1 files changed, 64 insertions, 0 deletions
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<HelloEntity> 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<Void> {
+ public Observable<Void> 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.