Abbiamo un'API RESTful che consente la creazione di utenti tramite il POST a un particolare endpoint, api/v1/users
Nel sistema, quando un utente viene creato, viene inviata una e-mail all'utente con il contenuto sulla falsariga di "{Utente autenticato} ti ha appena aggiunto al sistema super-cool e ora puoi fare qualsiasi cosa"
Tuttavia, in alcuni casi, quando un utente viene creato tramite l'API, NON VUOI inviarlo a tali messaggi. Supponiamo che si tratti di una sorta di processo di importazione o qualcosa del genere: lo sviluppatore ha già i suoi dati e non desidera inviare tali email.
Il dibattito nel nostro ufficio è il seguente:
Punto di vista A: "Questo è un esempio di come cadono i servizi web RESTful. Invece di inviare POST a un endpoint per creare una cosa, dovrebbero invece esserci endpoint di comando per ogni funzione che può essere eseguita dal sistema, quindi ogni cosa che puoi fare è rappresentato da un comando e se sono necessari metadati relativi a quel comando, puoi aggiungerlo "
Punto di vista B: "Il fatto che tu non voglia che la cosa x accada quando la cosa y è creata significa che ci sono due tipi di cose y, o cosa y ha uno stato che, se diverso, fa sì che accadano cose diverse quando viene creato, quindi è ancora possibile aderire ai rigidi principi RESTful "
Questa situazione può essere conciliata con puri principi RESTful? I metadati non sono un inquinamento dell'entità "utente", e quindi un argomento per cui esistono comandi per ogni cosa che si può fare all'interno del sistema? (Forse puoi vedere su quale parte dell'argomento cado ...)