En REST - revertable DELETE se dio una buena introducción sobre cómo cambiar los cambios de estado en REST. Básicamente, si tiene un recurso con un campo estado, simplemente coloca una nueva versión de ese recurso con una actualización estado campo.REST - transiciones de estado del modelo
En este tema, me gustaría extender este modelo. Digamos que tiene un recurso que puede estar en dos estados: 1 y 2. En contraste con el modelo simple como se describe en la publicación citada, hay tres transiciones para atravesar del estado 1 al estado 2, en lugar de solo uno.
Mi pregunta es: ¿cómo modelizarías las transiciones de estado en REST?
yo mismo no puedo pensar en un POST de RPC-similares, que no es muy probable que RESTian:
POST http://server/api/x
target_state=2&transition=3
Esta cambios en los recursos x del estado 1 al estado 2 mediante el uso de transición 3.
En primer lugar, muchas gracias por su respuesta detallada. Muy genial. Pero todavía no estoy realmente convencido de que cada transición se pueda modelar fácilmente como un estado. Creo que hay una gran diferencia entre estados intermedios y estados permanentes. Cubriste el segundo grupo. Sobre el primer grupo, un ejemplo: digamos que puede atravesar de personas sin hogar a poseedores de 3 maneras: usted paga por ello, lo hereda o lo gana en una lotería. ¿También vas a modelar esto como estados separados? ¿Esto no conduce a una explosión de estados simplemente por representar diferentes transiciones como estados? ¿Cómo ve eso? –
[Por "poseedor" quise decir "robado". Si pagas o ganas en una lotería, estás en el estado "propietario".] Si a tu aplicación le importa qué camino tomar, entonces sí, debes emplear estados intermedios, crear estados terminales nuevos, o agregar estado adicional (como un recurso para la hipoteca) para representar las diferencias. – fumanchu
Muy bien, tiene sentido. Solo temo una explosión de estados "virtuales", generada por el producto cruzado de todas las transiciones posibles. –