Couchbase — Как запросить представление с помощью C API — libcouchbase

В официальной документации Couchbase — http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-view.html

Вот пример извлечения данных из диванной базы с помощью представлений.

const char path[] = "myview?startkey=I,endkey=j";
libcouchbase_make_couch_request(instance, NULL, path, npath
                                NULL, 0, LIBCOUCHBASE_HTTP_METHOD_GET, 1);

Я скачал и установил libcouchbase v 2.0.6

Кажется, в библиотеке нет доступных функций libcouchbase_make_couch_request() или lcb_make_couch_request().

Где я ошибаюсь?

Также очень поможет, если где-то есть доступный пример для извлечения данных, которые извлекаются после того, как мы вызовем эквивалент libcouchbase_make_couch_request().


person binithb    schedule 14.06.2013    source источник
comment
В SO нет тега libcouchbase - может ли кто-нибудь его создать   -  person binithb    schedule 14.06.2013
comment
Документы не соответствуют источнику. Здесь есть несколько примеров и полный исходный код: github.com/couchbase/libcouchbase/ дерево/мастер/пример   -  person WiredPrairie    schedule 14.06.2013
comment
Я не уверен, что в теге Couchbase достаточно трафика, чтобы гарантировать создание тега только для их C API.   -  person WiredPrairie    schedule 14.06.2013


Ответы (1)


Сама библиотека поставляется с справочными страницами, которые являются наиболее актуальной документацией. Индексная страница man 3 libcouchbase. Вам нужна страница man 3 lcb_make_http_request. Также вы можете найти документы в формате asciidoc в самом репозитории https://github.com/couchbase/libcouchbase/blob/master/man/man3couchbase/lcb_make_http_request.3couchbase.txt

Между версиями 1.x и 2.x мы сильно изменили API, чтобы в основном он не был обратно совместим. И функция libcouchbase_make_couch_request была доступна только в версии «предварительный просмотр для разработчиков» (например, бета-версия), в конечном итоге она была названа lcb_make_http_request, потому что вы можете использовать тот же вызов для создания проектных документов, а также выполнять административные задачи, такие как создание/очистка/удаление корзины и т. д. .

Вот пример кода из справочной страницы выше:

lcb_http_request_t req;
lcb_http_cmd_t *cmd = calloc(1, sizeof(lcb_http_cmd_t));
cmd->version = 0;
cmd->v.v0.path = "_design/test/_view/all?limit=10";
cmd->v.v0.npath = strlen(item->v.v0.path);
cmd->v.v0.body = NULL;
cmd->v.v0.nbody = 0;
cmd->v.v0.method = LCB_HTTP_METHOD_GET;
cmd->v.v0.chunked = 1;
cmd->v.v0.content_type = "application/json";
lcb_error_t err = lcb_make_http_request(instance, NULL,
                                        LCB_HTTP_TYPE_VIEW,
                                        &cmd, &req);
if (err != LCB_SUCCESS) {
    ... failed to schedule request ...
person avsej    schedule 14.06.2013
comment
относительно вашего комментария. Сама библиотека поставляется с справочными страницами, которые являются наиболее актуальной «документацией». Индексной страницей является man 3 libcouchbase — я установил libcouchbase в RHEL5.5. В этом поле не установлены справочные страницы, man 3 libcouchbase или man libcouchbase или, кстати, libcouchbase не работает. Должен ли я делать что-либо дополнительно, чтобы установить справочные страницы вместе с библиотекой? - person binithb; 27.06.2013
comment
Они должны быть установлены с пакетом libcouchbase-devel, если нет, то это ошибка - person avsej; 02.07.2013