Diría que depende completamente de la direccionabilidad y la exclusividad de los datos dependientes.
Si sus datos asociados al usuario dependen del usuario (es decir, una cadena "distinta", por ejemplo, un atributo como una cadena que representa un nombre (no validado) de una película), debe incluirse en el POST creación de la representación del usuario; sin embargo, si los datos son independientes del usuario (donde los datos se pueden direccionar independientemente del usuario, por ejemplo, una referencia, como una película de un conjunto de películas), entonces se debe agregar de forma independiente.
El razonamiento detrás de esto es que la adición de referencia cuando se incluye con el POST original implica transaccionalidad; es decir, si otro usuario elimina la referencia de película para la película "favorita" entre cuando se elige en el cliente y cuando se realiza el POST, el usuario agregará (debería por ese diseño) error, mientras que si la película "favorita" no es asociativo, sino que es solo un atributo, no hay nada sobre lo que fallar (los atributos (presumiblemente) no pueden ser invalidados por un tercero).
Y una vez más, esto va muy a sus necesidades específicas, pero me quedo del lado de permitir las inserciones parciales e indicar las fallas. La forma correcta de manejar este tipo de cosas si realmente no quiere permitir insertos parciales es simplemente implementar transacciones en el back-end; son la única forma de manejar verdaderamente una situación en la que un recurso asociado crítico se elimina a mitad del proceso.
Si la información pertenece en una sola forma desde la perspectiva del usuario, _surely_ debería tomarla como un POST? Puedes hacer cosas inteligentes entre bastidores si quieres, pero no hagas que las interacciones con los clientes sean más complejas de lo que deben ser. –
@Donal: Estoy totalmente en desacuerdo; uno de los puntos importantes del diseño REST es que el cliente debe administrar el estado de la aplicación. Para cualquier problema no trivial, eso implica que el cliente rastrea más de un estado. Para el paradigma "forma única/POST único", está paralizando la capacidad del cliente para administrar el estado al restringir la granularidad del estado. –