Список методов получения информации

Методы построения запроса

HTTP-метод является указателем на действие, которое следует произвести с сущностью.

GET запрос на сервер вернет вам набор запрашиваемых данных, не измения никакой информации на сервере

POST запрос на сервер позволит создать новую запись на сервере для дальнейшего использования

Любой запрос должен состоять из пути к сущности, с которой предстоит выполнить какие-либо действия

Ссылка к серверу: mad2019.hakta.pro

{HTTP_Метод} http://{ссылка_к_серверу}/api/{сущность}/{не_обязательный_параметр}

Например, GET запрос представленный ниже вернет департамент с номером 1

GET /api/department/1

Кроме HTTP-методов и путей к сущностям, используются GET параметры для уточнения информации. На данный момент существуют следующие обрабатываемые заголовки:

modified (Date) - в формате "yyyy-MM-dd HH:mm:ss.SSS ZZZZZ" (2016-02-09 12:41:00.000 +0400). Служит для указания выборки

count (Int) - число записей, которое необходимо отдать

По умолчанию ответ имеет следующую структуру:

{"success": "bool","data":"JSONObject/JsonArray","error":"string","debug":"JSONObject"}

Авторизация

При работе с API может возникать необходимость быть авторизованным в системе. При обращении к некоторым разделам может придти следующая ошибка (401 HTTP ответ):

{"success":false,"error":"Unauthorized. You need be authorized"}

В этом случае необходимо передать в http-заголовке следующие данные: user_id (uuid), token (uuid)

Для того чтобы получить данные, перечисленные выше, необходимо авторизироваться с данными пользователя. А именно отправить следующий запрос:

GET /api/login/?login={логин пользователя}&password={пароль пользователя}

В случае успешной авторизации придет ответ с информацией о пользователе, его настройках и token'ом.

{ "data": { "id": "a2f6ecb0-88e1-b4f2-09ea-ec1cfd678d54", "login": "policeman", "name": "policeman", "token": "b183c6a6-23c3-574d-181e-c5d51db9d659" }, "success": true}

Для работы можно использовать пользователя policeman с паролем policeman

Если вы не реализовали авторизацию, то вот вам объект пользователя

{ "id": "a2f6ecb0-88e1-b4f2-09ea-ec1cfd678d54", "login": "policeman", "name": "policeman", "token": "454a8ba7-b924-04ef-29d6-09936b083c3f" }

Получение отделений

Получение департаментов

GET /api/department

При успешном запросе придет информация о департаментах в виде массива следующих объектов:

{ "id": "1", "address": "5 W. Lafayette St.", "name":"название департамента", "boss": "Ethen Rogers", "phone": "+7(869)355-3548", "email": "kiddailey@mac.com", "description": "Начальная зарплата рядового сотрудника совсем невысокая, но уже через несколько повышений она увеличивается в разы. Продвижение по карьерной лестнице предполагает периодическое присвоение более высоких званий. При качественном исполнении своих обязанностей это происходит раз в несколько лет. При желании полицейский может устроиться на работу в частное охранное агентство, где обычно предлагают более высокую заработную плату, но и меньшие перспективы в плане продвижения.", "coords": "[56.3432432, 45.3423423]" }

Получение розыска

GET /api/wanted

При успешном запросе придет информация о розыске в виде массива следующих объектов:

{ "id": "1", "status": "\tLost\t", "first_name": "\tSergei\t", "last_name": "\tKlimovich\t", "last_location": "\t09 IT For Bussines\t", "nicknames": "\tSerega, TAP, Vladimirovich\t", "description": "\tOn yshel I ne vernylsya\t", "photo": "\tphoto\t" },

Получение дел

Получение департаментов (требуется авторизация)

GET /api/criminal_case

При успешном запросе придет информация о дела в виде массива следующих объектов:

{ "id": "2", "category": "", "detective": "", "client": "", "number": "", "description": "lalala222", "create_date": "2019-05-22 08:16:17", "images": [ { "id": "1", "title": "Изображение 1", "link": "http://mad2019.hakta.pro/uploads/files/014-tongue-5.png" }] }

Отправка дел

Отправка дел (требуется авторизация)

POST /api/criminal_case

Для отправки нового дела, вы должны отправить на сервер следующую структуру

{ "id": "2", "category": "", "detective": "", "client": "", "number": "", "description": "lalala222", "create_date": "2019-05-22 08:16:17", }

Если Вам необходимо изменить существующее дело, то в объект вы должны передать поле id с номером дела.

Получение улик

Получение улик (требуется авторизация)

GET /api/evidence

При успешном запросе придет информация об уликах в виде массива следующих объектов:

{ "id": "2", "criminal_case_id": "1", "name": "test", "description": "lalala222" },

Отправка улик

Получение улик (требуется авторизация)

POST /api/evidence

Для отправки новой улики, вы должны отправить на сервер следующую структуру

{ "name": "test", "criminal_case_id": 1, "description": "lalala" }

Если Вам необходимо изменить существующую улику, то в объект вы должны передать поле id с номером улики.

Отправка фотографий

Отправка фотографии к делу(требуется авторизация)

POST /api/criminal_case_image?criminal_case_id=ID дела

Content-Type: form-data

Для отправки файла, добавьте в тело запроса поле criminal_case_image с самим файлом

Удаление изображения

Удаление изображений (требуется авторизация)

POST /api/delete_criminal_case_image?criminal_case_image_id=ID изображения&criminal_case_id=ID дела

Получение потеряшек

Получение потеряшек

GET /api/lost

При успешном запросе придет информация в виде массива следующих объектов:

{ "id": "3", "title": "Пропала собака", "name": "Шарик", "phone": "", "description": "Если найдете милого пёсика, то согрейте его и покормите. Не держите его в кластере F, так как он может замерзнуть. ", "reward": "0", "images": [ { "id": "9", "title": "Шарик", "link": "http://mad2019.hakta.pro/uploads/files/dog.jpg" } ] }