Saya sedang dalam proses mendesain API HTTP, semoga membuatnya setenang mungkin.
Ada beberapa tindakan yang fungsionalitasnya tersebar di beberapa sumber daya, dan terkadang perlu dibatalkan.
Saya berpikir sendiri, ini terdengar seperti pola perintah, tetapi bagaimana saya bisa memodelkannya menjadi sumber daya?
Saya akan memperkenalkan sumber daya baru bernama XXAction, seperti DepositAction, yang akan dibuat melalui sesuatu seperti ini
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
ini sebenarnya akan membuat DepositAction baru dan mengaktifkan metode Do / Execute-nya. Dalam hal ini, mengembalikan status HTTP Dibuat 201 berarti tindakan telah berhasil dilaksanakan.
Nanti jika klien ingin melihat detail tindakan yang dia bisa
GET /action/{action-id}
Pembaruan / PUT saya kira harus diblokir, karena tidak relevan di sini.
Dan untuk membatalkan aksinya, saya berpikir untuk menggunakan
DELETE /action/{action-id}
yang sebenarnya akan memanggil metode Undo objek yang relevan, dan ubah statusnya.
Katakanlah saya senang dengan hanya satu Do-Undo, saya tidak perlu Redo.
Apakah pendekatan ini oke?
Apakah ada jebakan, alasan untuk tidak menggunakannya?
Apakah ini dipahami dari POV klien?