Примеры осуществления запросов через 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'
Описание: команда для разлогирования пользователя.
Результат: команда удалит пользователя из сессии.