Jadi tidak ada yang baru di sini saya hanya mencoba untuk mendapatkan klarifikasi dan sepertinya tidak dapat menemukan di posting lain
Saya membuat sumber daya baru dengan tenang, katakan:
/books (POST)
dengan tubuh:
{
title: 'The Lion, the Witch and the Wardrobe',
author: 'C. S. Lewis'
}
Saya tahu bahwa saya harus mengembalikan 201 (Dibuat) dengan header Lokasi sumber daya baru:
Location: /books/12345
Pertanyaan yang sepertinya tidak bisa saya jawab sendiri adalah apa yang harus dikembalikan server di dalam tubuh.
Saya sering melakukan respons seperti ini:
{
id: 12345,
title: 'The Lion, the Witch and the Wardrobe',
author: 'C. S. Lewis'
}
Saya melakukan ini karena beberapa alasan:
- Saya telah menulis api untuk kerangka ujung depan seperti angularjs. Dalam kasus khusus saya, saya menggunakan sumber daya sudut dan saya sering hanya perlu id untuk sumber daya untuk menemukannya. Jika saya tidak mengembalikan id di badan respons, saya harus menguraikannya keluar dari header Lokasi.
- Dalam GET semua buku saya biasanya mengembalikan seluruh objek bukan hanya id. Dalam hal ini kode klien saya tidak harus membedakan dari mana mendapatkan id dari (header atau badan lokasi).
Sekarang saya tahu saya benar-benar berada di daerah abu-abu di sini, tetapi kebanyakan orang mengatakan bahwa mengembalikan seluruh sumber daya adalah praktik yang 'buruk'. Tetapi bagaimana jika server mengubah / menambahkan informasi ke sumber daya. Itu pasti menambahkan id, tetapi mungkin juga menambahkan hal-hal lain seperti cap waktu. Jika saya tidak mengembalikan seluruh sumber daya, apakah lebih baik melakukan POST, mengembalikan id, lalu meminta klien melakukan GET untuk mendapatkan sumber daya baru.