/{fine-grained-id}/businessProcess
Non ho familiarità con l'API di Facebook, ma dovresti evitare di inserire azioni o processi nei tuoi URL se l'intento è di chiamare quell'azione facendo una richiesta a quell'URL. Ad esempio questo è sbagliato
GET /infrastructure/database/reshard
Invece, il cliente deve mettere le risorse database
nello stato resharding
e poi dire al server che è il nuovo stato del database.
PUT /infrastructure/database
{state: resharding}
Le sole azioni che puoi eseguire su una risorsa sono definite nelle specifiche HTTP (GET, POST, PUT, DELETE ecc.). HTTP riguarda il trasferimento di stato. Il client non chiede al server di eseguire un'azione su una risorsa che ha (client: per favore riscrivi il database ).
Invece, cambia lo stato di una risorsa (che ricorda un concetto astratto) e poi usa le semplici azioni HTTP per far sapere al server che ha aggiornato questa risorsa e che il server deve essere sincronizzato (client: Ho messo il database in questo nuovo stato di resharding, aggiorna la tua rappresentazione di questa risorsa )
Il database fisico viene fisicamente risarcito come effetto collaterale del server che sincronizza il suo stato della risorsa con lo stato del client.