Llegué a esta pregunta sobre todo buscando una manera RESTful de reordenar. Realmente no me gusta ninguna de las respuestas, así que esto es lo que pienso que es más RESTful.
Para reordenar usted podría hacer el pedido de un recurso:
/list/order
entonces usted puede hacer las operaciones normales en el mismo (para estos ejemplos asumen una lista con 5 elementos que se encuentran en ella):
"items":" [
{
"id": "A",
"name": "Monkey"
},
{
"id": "B",
"name": "Cow"
},
{
"id": "C",
"name": "Horse"
},
{
"id": "D",
"name": "Turkey"
},
{
"id": "E",
"name": "Tasmanian Devil"
},
]
Tenga en cuenta que "orden" no se incluye en la respuesta del recurso. No es necesario: el pedido está especificado implícitamente por el orden de respuesta de los artículos.
GET /list/order
devuelve una lista de identificadores de elementos en su orden correcto
['A','B','C','D','E']
POST /list/order
con carga útil ['D','B','C','A','E']
GET /list/order
devuelve una lista de identificadores de elementos en su orden correcto
['D','B','C','A','E']
También es obvio que devolvería los elementos de la lista en el orden correcto cuando se hace una GET
en /list
.
GET /list
devuelve una lista de artículos en su orden correcto
"items":" [
{
"id": "D",
"name": "Turkey"
},
{
"id": "B",
"name": "Cow"
},
{
"id": "C",
"name": "Horse"
},
{
"id": "A",
"name": "Monkey"
},
{
"id": "E",
"name": "Tasmanian Devil"
},
]
1 año después: Como resultado, este tipo de reflexiones filosóficas tienen un impacto mínimo sobre qué tan bien su aplicación resuelve un problema. La verdadera respuesta parece ser que no importa lo que elija, siempre y cuando no viole ninguna especificación/requisito y cause problemas. – dadads