Как реализовать ресурс RESTful для конечный автомат или конечный автомат

Я новичок в Rails и REST и пытаюсь понять, как лучше всего раскрыть ресурс, поддерживаемый объектом домена, имеющим конечный автомат (другими словами, это конечные автоматы).

Я видел несколько жемчужин для превращения класса модели в конечный автомат, например, aasm, переходы, рабочий процесс, но ни один из них не документирует примеры того, как они фактически используются в контроллере, ориентированном на ресурсы. Кажется, все они подразумевают, что переходы между состояниями запускаются «событием», которое на самом деле является вызовом метода. Вот некоторые вопросы, которые у меня возникают по поводу того, что это подразумевает:

  1. Действие обновления (метод PUT) не подходит, потому что PUT предположительно идемпотентен. Единственное, это было бы возможно, если бы состояние было отправлено как часть представления. Это несовместимо с «событием». Это правильно?
  2. Поскольку события не идемпотентны, необходимо использовать POST. Но на какой ресурс? Есть ли подресурс для каждого возможного события? Или,
  3. [Обновленный вопрос] Как лучше всего отображать переходы в пользовательском интерфейсе? Поскольку события не являются состояниями, казалось бы, не имеет смысла разрешать обновление атрибута состояния (и любого другого атрибута, который зависит от переходов состояний). Означает ли это, что эти атрибуты следует игнорировать при обновлении?
27
задан Kara 21 June 2013 в 17:53
поделиться