Kami sedang merancang API REST untuk mengakses data pelanggan klasik. Salah satu elemen dalam API adalah aset pengguna. Aset ditambahkan di bawah layanan yang diberikan. API backend hanya akan menambahkan aset ke pengguna di bawah layanan yang diberikan. Jadi, tidak ada hubungan Pengguna - Aset, tetapi Pengguna - [Layanan] - Hubungan aset.
URI kami akan terlihat seperti ini:
/users/{id}/assets/{id}/services/{id}
Penggunaan API akan mengetahui id aset dan id layanan untuk membuat entri baru. Yang kami perjuangkan adalah penciptaan hubungan ini.
Salah satu cara mudah adalah memposting seluruh hubungan dengan /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
tapi kemudian kita sebenarnya tidak menciptakan aset seperti yang ditunjukkan oleh URI, tetapi hubungan aset-layanan.
Sebagai alternatif, kami mempertimbangkan POST'ing ke URI yang membahas hubungan, seperti ini:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Tetapi dalam kasus ini, jalur sumber daya /users/{id}/assets/{id}
tidak akan ada sebelum POST dan akan dibuat sebagai efek samping.
Apakah POST ke jalur sumber daya yang belum ada sama sekali diizinkan?
Terima kasih atas pemikiran anda,
Gerard.