API умеет возвращать данные в форматах JSON и XML. Форматом ответа можно управлять с помощью заголовка запроса Accept:
Accept: application/json — выдать данные в формате JSON;Accept: application/xml — выдать данные в формате XML.По умолчанию JSON, он же указан в примерах.
Целые числа, если не указано иное, являются беззнаковыми 64-разрядными целыми числами.
Обязательные параметры запросов выделены.
Базовый урл обязательно включает в себя версию API:
https://sishot.ru/api/v1
Важно сделать базовый урл в приложении настраиваемым, потому что со временем он может меняться:
http поменяется на https, сменится мажорная версия API и так далее…
Все урлы API даны относительно базового урла.
Например, указанный /image разворачивается в https://sishot.ru/api/v1/image.
К любому из урлов можно применять методы HEAD и OPTIONS.
После запроса OPTIONS в ответном заголовке Allow будет содержаться список доступных для этого урла методов.
Например OPTIONS /image → Allow: POST, HEAD, OPTIONS, а OPTIONS /image/5hBVPemcAAXW → Allow: GET, HEAD, OPTIONS.
Если какой-либо метод к данному урлу неприменим, код ответа — 405,
а ответный заголовок Allow содержит список доступных для этого урла методов (как и в OPTIONS).
Более подробный список используемых HTTP-кодов ответа см. ниже.
POST /imageСоздаёт новое изображение.
Если параметры пользователя (token) не переданы, файл будет создан анонимно (без авторства определённого пользователя).
Параметры:
multipart/form-data);Формат JSON-ответа:
{
"id": "5hBVPemcAAXW", // идентификатор — строка
"name": "гимн.png", // исходное имя файла — строка
"caption": "подпись", // подпись к изображению — строка, может быть `null`
"type": "image/png", // MIME-тип файла — строка
"size": 100666, // размер файла — 32-битное беззнаковое целое число
"url": "https://…", // ссылка на просмотр файла — строка
"userId": null // идентификатор автора — целое число, может быть `null`
}
Если валидация данных не увенчается успехом (код ответа — 422),
тело ответа будет содержать список полей запроса и их сообщения об ошибках.
После успешного создания (код ответа — 201), в ответном заголовке Location будет указан урл
для получения информации о файле методом GET (см. ниже).
Обратите внимание, что значение заголовка Location не равно значению поля url в теле ответа, у этих урлов разные смыслы:
первая ссылка предназначена для получения информации о файле, вторая — для просмотра файла на сайте.
(Например, https://sishot.ru/api/v1/image/5hBVPemcAAXW и https://sishot.ru/i/5hBVPemcAAXW.)
GET /image/@idПолучить информацию об изображении с идентификатором @id.
Идентификатор — строка символов a—z, A—Z, 0—9, -, _.
Например, 5hBVPemcAAXW.
Регвыр для валидации строки — /^[a-zA-Z0-9_-]+$/.
Параметров нет.
Возвращает такой же JSON-объект, как и POST-метод.
Location содержит урл новосозданного ресурса;DELETE-запросе);Allow содержит список доступных методов;POST-запрос, тело ответа содержит текст ошибки;X-Rate-Limit-Reset содержит время в секундах, когда ограничение будет снято, и запрос можно будет повторить;С Днём победы!
/**
* API для sishot.ru
*
* @author MaximAL
* @date 2015-05-09 С Днём победы!
* @time 1:15
* @version 1.0
* @since 2015-05-09 Первая версия документа.
* @copyright © MaximAL, Sijeko 2015
**/