Примеры осуществления запросов через CURL

LOGIN

Запрос: curl -c 'cookiefile.cookie' -X GET 'http://geomongo/instance/login/debug?_id=debug_user1'

Описание: залогинится и получить cookie в файл: cookiefile.cookie

Результат: в директории, в которой находится пользователь, появится файл с cookie: cookiefile.cookie

Все последующие команды будут использовать полученный cookie файл.


 

ЛОГ

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/testservice/log?number=10&offset=0&date_from=1983-01-22T08:00:00&date_to=2016-01-22T08:00:00'

Описание: команда возвращает список из number записей из testservice[log] со сдвигом offset и указанным временным промежутком.

Результат: 100 или меньше записей из базы, указанной после 'service/', коллекции 'log'

Пример:

[{"date": {"$date": 1432821291832}, "message": "test", "_id": {"$oid": "55671e2b13293c504d515a35"}, "user_id": "stub", "service": "testservice"}, ...]

 


 

КАНАЛЫ (следующие команды следует выполнять последовательно)
Далее CHANNEL_ID - это идентификатор канала, полученный при выполнении первой комманды этого раздела

Запрос: curl -b 'cookiefile.cookie' -H "Content-Type: application/json" -X POST -d '{"name":"test_name","json":"{1: 2, 2: 4}"}' 'http://geomongo/instance/service/testservice/channel'

Описание: команда для создания канала с указанными параметрами name и json (параметры обязательны).

Результат: идентификатор созданного канала ObjectId или null - если канал с таким идентификатором уже существует

Пример:

{"$oid": "CHANNEL_ID"}

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/testservice/channel?number=10&offset=0'

Описание: поиск number каналов со сдвигом offset, в имени которых содержится substring (все параметры не являются обязательными).

Результат: список каналов базы, указанной после 'service/', коллекции 'channels' либо пустой список []

Пример:

[{"owner_group": "STUB", "name": "test_name", "acl": 777, "json": "{1: 2, 2: 4}", "_id": {"$oid": "55d159027efcd636178b9f21"}, "owner_id": "STUB"}, ...]

Запрос: curl -b 'cookiefile.cookie' -X PUT -d 'name=new_test_channel' 'http://geomongo/instance/service/testservice/channel/CHANNEL_ID'

Описание: команда изменяет запись в базе, либо оповещает, что нет такого канала.

Результат: пустые кавычки {} или 'Channel does not exist'

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/testservice/channel/CHANNEL_ID'

Описание: поиск канала по его id.

Результат: запись из базы, указанной после 'service/', с идентификатором CHANNEL_ID коллекции 'channels' либо оповещение что нет такого канала.

Пример:

{"owner_group": "STUB", "name": "test_name", "acl": 777, "json": "{1: 2, 2: 4}", "_id": {"$oid": "55d159027efcd636178b9f21"}, "owner_id": "STUB"} 

или

'Channel does not exist'

Запрос: curl -b 'cookiefile.cookie' -X DELETE 'http://geomongo/instance/service/testservice/channel/CHANNE_ID'
Описание: удаление канала из базы, указанной после 'service/', с идентификатором CHANNEL_ID коллекции 'channels', либо оповещение, что нет такого канала.

Результат: пустые кавычки {} или 'Channel does not exist'


 

ТОЧКИ (следующие команды следует выполнять последовательно)
Далее POINT_ID - это идентификатор точки, полученный при выполнении первой комманды этого раздела

Запрос: curl -b 'cookiefile.cookie' -H "Content-Type: application/json" -X POST -d '[{"lat":1.1,"lon":1.1,"alt":1.1,"json":{"a":"b"},"channel_id":"CHANNEL_ID", "bc":true}]' 'http://geomongo/instance/service/testservice/point'

Описание: создание точки с указанными параметрами lon, lat, alt, json, channel_id, которые передаются в отдельном json'e и являются обязательными. Флаг bc определяет, является ли дата датой до нашей эры, и не является обязательным. По умолчанию bc = false

Результат: идентификатор созданной записи в базе, указанной после 'service/', коллекции 'points'

Пример:

["POINT_ID"]

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/testservice/point?number=10&channel_ids=CHANNEL_ID'
Описание: работает некорректно, создать задачу

Запрос: curl -b 'cookiefile.cookie' -X PUT -d 'alt=5' 'http://geomongo/instance/service/testservice/point/POINT_ID'

Описание: изменение информации о точке c указанным id.

Результат: команда изменит запись в базе и вернет {} или Point does not exist

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/testservice/point/POINT_ID'

Описание: поиск точки по указанному id.

Результат: запись базы(сервиса), указанного после 'service/', либо оповещение что нет такой точки.

Пример:

{"bc":false, "channel_id": null, "json": null, "location": {"type": "Point", "coordinates": [1.1, 1.1]}, "date": {"$date": 1439825024437}, "alt": 5.0, "_id": {"$oid": "55d1d2507efcd65a7de01205"}} 

или

'Point does not exist'

 

Запрос: curl -b 'cookiefile.cookie' -X DELETE 'http://geomongo/instance/service/testservice/point/POINT_ID'

Описание: удаление точки по указанному id.

Результат: команда удалить из базы точку и вернет {} или Point does not exist.


 

СЕРВИСЫ (следующие команды следует выполнять последовательно)
Далее SERVICE_NAME - название сервиса выбранного при исполнении первой команды данного раздела

Запрос: curl -b 'cookiefile.cookie' -X POST -d 'name=SERVICE_NAME&ownerId=new_test_ownerId&logSize=10' http://geomongo/instance/service

Описание: создание сервиса с параметрами name (обязательный), logSize и ownerId (необязательные).

Результат: идентификатор созданного сервиса ObjectId или Service already exist

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service?number=0&offset=0'

Описание: получение number сервисов c offset сдвигом.

Результат: список сервисов.

Пример:

[{"_id": {"$oid": "55671ae113293c504d515a33"}, "config": {"log_size": 1048576, "logSize": 10}, "name": "testservice", "owner_id": ""}, ...]

Запрос: curl -b 'cookiefile.cookie' -X PUT -d 'logSize=15' 'http://geomongo/instance/service/SERVICE_NAME'

Описание: изменение параметров сервиса с указанным именем.

Результат:

{"SERVICE_NAME": "Service updated"}

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/service/SERVICE_NAME'

Описание: поиск сервиса по указанному имени.

Результат: запись из базы 'geomongo' коллекции 'services'.

Пример:

{"_id": {"$oid": "55d1d7507efcd65a7de01214"}, "config": {"log_size": 10, "logSize": 15}, "name": "new_test_service", "owner_id": "new_test_ownerId"}

Запрос: curl -b 'cookiefile.cookie' -X DELETE 'http://geomongo/instance/service/SERVICE_NAME'

Описание: удаление сервиса по указанному имени сервиса.

Результат:

{"SERVICE_NAME": "Service removed"}

 

ПЛАГИНЫ
Далее PLUGIN_NAME - это имя плагина, имена можно получить первой командой данного раздела

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/plugin'

Описание: получение списка плагинов.

Результат: JSON - список всех плагинов

Пример:

{"test_plugin_for_fail": false, "test_plugin_for_load_fail_gt_1435": false, "test_plugin": true, "ok_import": true, "testPlugin1": false, "testPlugin2": true}

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/manage_plugins?PLUGIN_NAME=True'

Описание: управление статусом плагина по указанному имени плагина.

Результат: команда изменяет статус плагина и возвращает null


 

LOGOUT

Запрос: curl -b 'cookiefile.cookie' -X GET 'http://geomongo/instance/logout'

Описание: команда для разлогирования пользователя.

Результат: команда удалит пользователя из сессии.