¿Acciones / servicios RESISTENTES que no corresponden a una entidad?

e gusta RESTful por su simplicidad y cómo evita la ruina de los sistemas normales 'empresariales' como SOAP, o la dureza binaria de DCOM y RPC.

But REST parece más adecuado para entidades de bases de datos que servicios más abstractos. Me preguntaba si podría aconsejarme sobre cómo haría estas situaciones:

Por ejemplo, supongamos que tengo un servicio web RESTful para un sistema de base de datos normal (por ejemplo, un sitio de compras de productos lácteos), por lo que tendría / productos / huevos / batería y / productos / leche / desnatada

Hacer un INSERT se lograría haciendo una POST a /products/eggs

Pero, ¿cómo harías un comando "borrar todo"? El verbo DELETE solo es adecuado para entidades individuales. Y un "BORRAR / productos / leche" implica la eliminación de la categoría de producto "leche" en sí misma en lugar de solo todos los productos dentro de la categoría de leche. ¿Y qué pasa si quieres lograr ambos?

Otra pregunta que tengo se relaciona con acciones de servicio web que no están relacionadas con una entidad. Por ejemplo, si estoy diseñando un servicio web para una base de datos de contraseñas, tendría operaciones como "GET /passwords/stackoverflow.com" que está bien, pero también tendría operaciones para deshabilitar el sitio web en caso de intrusión detección. Según el modelo de servicio web 'old school', tendría un método simplemente llamado "disableWebsite", sin embargo, no puedo crear un verbo HTTP llamado "DISABLE" y un recurso llamado "/ website" (por lo que la solicitud sería " DESACTIVAR / sitio web "). ¿Cuál es la solución aquí?

Finalmente, ¿cómo se concilian los formularios HTML con RESTful? Los formularios web solo pueden realizar solicitudes GET utilizando cadenas de consulta o POST. Si tengo un formulario de búsqueda, quiero que solicite "/ products / search / {query}" pero en este momento la solicitud se vería como "/products/search?query={query}"

Respuestas a la pregunta(3)

Su respuesta a la pregunta