amarao (amarao_san) wrote,
amarao
amarao_san

REST или не REST (scapi)

Всё-таки мы решили обойтись без PUT-запросов (если и реализовывать, то только для аплоада). В нашей концепции объектом уровня URL'а является сочетание глагола и типа (например, vm-query, или vdi-count, или vm-configure-vcpu), всё остальное является параметром.

Параметры для неизменяющих запросов передаются в GET'e:

/scapi/vm-query?i:owner=12&fields=uuid,self.name,rel.template,self.consumption.cpu_time&sort=-self.consuption.cpu_time

(пишу по памяти, могут быть опечатки).

Параметры изменяющих состояние запросов передаются в виде POST'а (тот же urlencoded). Нужно это по простой причине: посты гарантированно не перепосылаются без особых на то причин. Даже если с позиции REST'а всё ок, для нас совсем не ок, если запрос на vm-shutdown придёт дважды.

Ответ всегда возвращается в виде json'а, даже если это ошибка. HTTP-коды пришлось расширить (например, 460 - virtualization backend error), так как стандартных явно не хватало.
Tags: scapi
Subscribe

  • ip management

    Требуется помощь зала, если в зале кто-то знаком с XenAPI/XenServer/XCP. Хочется расширить множество объектов, объектом класса 'ip', или 'address'.…

  • хохо

    Сейчас человек на хабре написал - у нас опечатка была в калькуляторе при создании машин - самый дешёвый дебиан - 45 рублей в месяц. Так сказать,…

  • Запуск облака

    http://habrahabr.ru/company/selectel/blog/109912 Собственно, скорректировали цены (для новых клиентов), запустились. Суся будет в разумное время.…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments