Sugeriría devolver solo lo que se necesita + un poco de aclaración.
Por ejemplo, dependiendo de cómo se use su API, puede incluir una copia del objeto, tal como existe después de ser guardado.
Entonces, una POST de {key: 123} podría devolver {key: 123, foo: 'bar'}.
La idea básica es que es mejor devolver el objeto que tener que volver a consultarlo.
Dicho esto, de sus consumidores API no necesitan el objeto, no hay necesidad de devolverlo.
Por lo general, devuelvo {success: true} o algo similar, cuando no se requiere ningún objeto en POST PUT and PATCH porque facilita la recepción. Dicho esto, es mejor el 99% del tiempo devolver la representación guardada del objeto, es raro que no la necesiten de todos modos, y es "más barato" enviarlo todo en una solicitud y luego en dos.
Para ser específicos, en un laboratorio se encuentra perfectamente manejar todo con solo códigos de estado, en el mundo real, es mucho mejor devolver algunos datos, incluso si son redundantes, para que los consumidores de API puedan entender fácilmente lo que estás tratando de decir.
Devolver 200 {success: true} permite a las personas escribir código en ambos sentidos:
if response.code == 200
do stuff
end
y
if response.body.success
do stuff
end
Además, no es tan difícil de hacer de tu lado.
Por último, (perdón por la estructura de respuesta de poos), al proporcionar una API JSON pública, estás renunciando a un gran control sobre cómo se va a usar. Algunos clientes pueden reaccionar de manera diferente a diferentes cuerpos (o falta de ellos) o códigos de estado.