Отличительной особенностью Couchbase Java SDK является то, что он построен на основе превосходной библиотеки Rx-Java , это дает реактивный способ взаимодействия с экземпляром сервера Couchbase, который становится очень интуитивно понятным, когда вы освоите его.
Рассмотрим очень простой документ json, который я собираюсь хранить в Couchbase:
1
|
{ "key" : "1" , "value" : "one" } |
и класс Java для хранения этого json:
1
2
3
4
5
6
|
public class KeyVal { private String key; private String value; ... } |
Ниже приведен код для вставки экземпляра KeyVal в корзину Couchbase:
1
2
3
4
5
|
JsonObject jsonObject = JsonObject.empty().put( "key" , keyVal.getKey()).put( "value" , keyVal.getValue()); JsonDocument doc = JsonDocument.create(keyVal.getKey(), jsonObject); Observable<JsonDocument> obs = bucket .async() .insert(doc); |
Тип возвращаемого значения вставки — Observable , поэтому, если мне нужно отобразить возвращаемый тип обратно на KeyVal, я могу использовать расширенную поддержку отображения, предоставляемую классом Observable .
1
2
3
4
5
6
|
Observable<KeyVal> obs = bucket .async() .insert(doc) .map(jsonDoc -> new KeyVal(jsonDoc.id(), jsonDoc.content().getString( "value" )) ); |
Другие API следуют аналогичному шаблону, например. чтобы получить сохраненный документ:
1
2
3
4
5
6
|
bucket .async() .get(id) .map(doc -> new KeyVal(doc.id(), doc.content().getString( "value" ))); |
- Если вы заинтересованы в дальнейшем изучении этого примера, вот мое репозиторий github с рабочим примером — https://github.com/bijukunjummen/sample-karyon2-couch
Ресурсы
- Couchbase Java SDK : http://docs.couchbase.com/developer/java-2.1/java-intro.html
- Rx-Java : https://github.com/ReactiveX/RxJava
- Отличная и краткая статья о Rx-Java, представленная на сайте Couchbase : http://docs.couchbase.com/developer/java-2.0/observables.html
Ссылка: | Couchbase Java SDK с Rx-Java от нашего партнера по JCG Биджу Кунджуммена из блога « все и вся» . |