Размеры

Управление размерами осуществляется с помощью двух ресурсов:

  • /sizes - ресурс для управления коллекцией размеров
  • /sizes/:id - ресурс для управления конкретным размером с идентификатом :id
Метод Ресурс Результат
POST /sizes создать размер
GET /sizes найти размеры
GET /sizes/:id получить данные размера
POST /sizes/:id изменить данные размера
DELETE /sizes/:id удалить размер

Создание размера

Чтобы создать размер, необходимо выполнить запрос POST /sizes с JSON-документом в теле вида:

Поле Описание Обязателен Разрешенные значения
width Ширина Нет
Строка с размером и размерностью в
процентах или пикселях (“100px”, “50%”)
“^([1-9]\d{0,6}(px|%))?$”
height Высота Нет
Строка с размером и размерностью в
процентах или пикселях (“100px”, “50%”)
“^([1-9]\d{0,6}(px|%))?$”
description Описание Нет
UTF8-текст.
Длина: 0-400 символов.
“^[\p{L}\p{P}\p{S}\p{N}\s]{0,10000}$”

Пример:

$ curl --request POST \
       --include \
       --user "admin:admin" \
       --header "Content-Type: application/json" \
       --data \
       '{
          "width":"240px",
          "height":"400px",
          "description":"Test size"
        }' \
       --url http://api.example.com/sizes

HTTP/1.1 200 OK
Server: nginx/1.4.3
Date: Tue, 12 Nov 2013 08:14:43 GMT
Content-Type: application/json
Content-Length: 69
Connection: keep-alive
Location: http://api.example.com/sizes/1

{
  "id":1,
  "width":"240px",
  "height":"400px",
  "description":"Test size"
}

Только администраторы могут создавать/удалять/изменять размеры. Операции чтения разрешены для всех типов пользователей.

Поиск размеров

Чтобы получить список размеров, необходимо выполнить запрос GET /sizes.

Пример:

$ curl --request GET \
       --include \
       --user "admin:admin" \
       --url http://api.example.com/sizes

HTTP/1.1 200 OK
Server: nginx/1.4.3
Date: Tue, 12 Nov 2013 08:19:29 GMT
Content-Type: application/json
Content-Length: 83
Connection: keep-alive

{
  "results": [
    {
      "id":1,
      "width":"240px",
      "height":"400px",
      "description":"Test size"
    }
  ],
  "total_count": 1
}

Любой пользователь может искать размеры.

Получение данных размеров

Чтобы получить данные размера, необходимо выполнить запрос GET /sizes/:id.

Пример:

$ curl --request GET \
       --include \
       --user "admin:admin" \
       --url http://api.example.com/sizes/1

HTTP/1.1 200 OK
Server: nginx/1.4.3
Date: Tue, 12 Nov 2013 08:20:53 GMT
Content-Type: application/json
Content-Length: 69
Connection: keep-alive

{
  "id":1,
  "width":"240px",
  "height":"400px",
  "description":"Test size"
}

Изменение данных размеров

Чтобы изменить данные размера, необходимо выполнить запрос POST /sizes/:id.

Формат документа для обновления данных размера идентичен формату документа для создания размера. Если поле не указано или содержит литерал null, значение поля не будет обновлено.

Пример:

$ curl --request POST \
       --include \
       --user "admin:admin" \
       --header "Content-Type: application/json" \
       --data \
       '{
          "description":"My new size"
        }' \
       --url http://api.example.com/sizes/1

HTTP/1.1 200 OK
Server: nginx/1.4.3
Date: Tue, 12 Nov 2013 08:24:58 GMT
Content-Type: application/json
Content-Length: 65
Connection: keep-alive

{
  "id":1,
  "width":"240px",
  "height":"400px",
  "description":"Test size"
}

Только администратор могжет изменять размеры.

Удаление размера

Чтобы удалить размер, необходимо выполнить запрос DELETE /sizes/:id.

Пример:

$ curl --request DELETE \
       --include \
       --user "admin:admin" \
       --url http://api.example.com/sizes/1

Server: nginx/1.4.3
Date: Tue, 12 Nov 2013 08:26:21 GMT
Content-Type: application/json
Content-Length: 0
Connection: keep-alive

Только администратор могут удалять размеры.