Saya mengalami masalah dalam mendapatkan layanan untuk mengenali POST ke /comment.json. Saya memiliki masalah yang sama dengan membuat node juga.
Berikut ini adalah kesalahan yang saya dapatkan: HTTP / 1.1 406 Tidak Dapat Diterima: Tidak ada komentar argumen yang diperlukan
Pesan ini berasal dari file: /services/server/rest_server/includes/RESTServer.inc Secara khusus, baris:
elseif (!isset($info['optional']) || !$info['optional']) {
return services_error(t('Missing required argument !arg', array(
'!arg' => $info['name'],
)), 406);
}
pada dasarnya, tampaknya berpikir bahwa argumen "komentar" tidak ada (dan itu bukan opsional).
Ini adalah salah satu dari banyak bit JSON yang saya berikan (memposting komentar ke node 8801)
{name:"test",language:"und",cid:"0",pid:"0",uid:"17593",nid:"8801",
comment:{subject:"Subject of the comment, if not entered it will be auto-generated",
comment_body:
{und:[
[{value:"value of the field comment in the comment, remember that in D7 we can create fields for comments too", format: "full_html"}]
]}}}
Ini sangat valid (berdasarkan pemeriksaan JSON online lainnya). Ini juga cocok dengan yang saya lihat dalam contoh pengujian layanan di /services/test/functional/ServivesResourceCommentTests.test
Namun, saya selalu mendapatkan pesan kesalahan yang sama. Ini tampaknya mirip dengan: Drupal 7 layanan objek json node
yang juga belum terselesaikan. Dapatkah seseorang membantu saya dengan pemformatan JSON yang tepat? Sungguh, yang ingin saya lakukan adalah mengoperkannya seperti:
{ nid : 8081 , uid : 17593 ,comment:{comment_body:"test",subject:"test"}}
tajuk http saya tampak ok dan pengguna / login berfungsi dengan baik.
Bisakah Anda memberi tahu saya URL apa yang akan Anda posting json string ini Saya telah mencari di seluruh web untuk beberapa dokumentasi cara membuat komentar pada node menggunakan layanan 3. Dokumentasi pada modul ini benar-benar kurang. Saya sudah mencoba memposting ke:
example.com/api/node/{nid}/comments.json
example.com/api/comment.json
example.com/api/comment/create.json
Sepertinya tidak ada yang berhasil. Saya selalu mendapatkan "404 Tidak Ditemukan: Tidak dapat menemukan controller"
EDIT: segera setelah saya memposting ini saya berhasil. Jika itu akan membantu orang lain Anda memposting string json Anda ke:
example.com/api/comment.json
Jika Anda menggunakan Poster untuk menguji, pastikan untuk mengatur jenis konten ke aplikasi / json. Saat menggunakan jquery pastikan Anda mengatur dataType: 'json'.
sumber
Berikut adalah beberapa contoh untuk membuat dan memperbarui node dan komentar dalam format berikut:
Node Buat
? q = titik akhir / node.json
{"type": "article", "title": "t8yZUfX2it", "language": "und"}
Pembaruan Node
? q = titik akhir / simpul / 123.json
{"node": {"nid": "123", "title": "9AjrXJhWMI", "language": "und"}}
Komentar Buat
? q = titik akhir / comment.json
{"subject": "liJmJfpqMX", "comment_body": {"und": [{"value": "9DyaNZi3lA"}]}, "nid": "18"}
Pembaruan komentar
? q = titik akhir / komentar / 456.json
{cid: 456, "subject": "hzU27R6daE", "comment_body": {"und": [{"value": "BqZU5DwArD"}]}, "nid": "18"}
sumber
Saya mendapatkan masalah yang sama bahkan ketika hanya menguji dengan poster plugin firefox. Ternyata itu hanya ruang ekstra putih dan beberapa format sederhana lainnya (seperti lolos) yang melakukannya. Berikut adalah daftar yang berfungsi dalam tes saya sendiri untuk apa yang saya butuhkan:
BUAT KARYA PENGGUNA = titik akhir / pengguna
KARYA MASUK = titik akhir / pengguna / login
BUAT KARYA FILE = titik akhir / file
CREATE NODE WORKS = titik akhir / simpul
sumber