In generale, le API RESTful sono ottime per rappresentare risorse e raccolte di risorse.
E siamo bravi, se lavoriamo con le risorse.
Tuttavia, che cosa dovrebbe essere fatto, quando è necessario esporre l'API che esegue un'azione che non crea / aggiorna o elimina una risorsa.
Coppia di esempi:
- Hai un algoritmo (ad esempio aggiungi due numeri)
- Hai un'azione che utilizza un sistema esterno (ad esempio, invia un'email).
Ho visto due approcci:
Rappresenta un'azione come subresource
POST link
Da una parte, è semplice. D'altra parte, inizia a puzzare SOAPy (leggi chiamate RPC).
Rappresenta un'azione come risorsa autonoma
POST link
Questo sembra più RESTful. Tuttavia, non sembra giusto (solo una delle azioni CRUD è implementata). Questa risorsa in realtà non ha una rappresentazione.
Non sono sicuro, potrebbero esserci altri metodi che mi sono persi.
La domanda è: "C'è un consenso su questo argomento? Qual è il modo preferito per farlo?"