curl json mengirim permintaan melalui terminal ke aplikasi rel


109

Saya mencoba membuat pengguna di aplikasi rel saya dengan perintah curl dari terminal os x. Tidak peduli bagaimana saya memformat data, aplikasi mengembalikan respons yang telah dilewati oleh non-validasi saya.

curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}"

Saya sudah mencoba setiap variasi. Saya sudah mencoba menggunakan tanda kurung [], saya sudah mencoba user = {data ..} dan sepertinya tidak ada yang berhasil. Ada ide?


Mengapa tidak menggunakan $ rails cdan User.create :first_name => 'John', :last_name => 'Smith', ...?
coreyward

23
@coryward: Itu akan menggagalkan seluruh tujuan API.
Wukerplank

itu benar-benar membuat saya bingung
chris sun

Hai, Bob mungkin menemukan masalahnya, tetapi jika itu bisa membantu, berikut adalah pos yang saya temukan kemarin: squarism.com/2011/04/01/how-to-write-a-ruby-rails-3-rest-api Ini tentang XML, tetapi mungkin membantu. Salam Hormat.
plang

Jawaban:


227

Pertama, ada "yang asing di akhir perintah Anda.

Coba ini

curl -v \
  -H "Accept: application/json" \
  -H "Content-type: application/json" \
  -X POST \
  -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}' \
  http://localhost:3000/api/1/users

itu dia. Saya menemukan tadi malam bahwa itu membutuhkan -H Terima dan Jenis-konten.
Chris sun

Hai, saya memanggil skrip seperti ini: abc.com/?a=4&b= {"x": "y"}. Bisakah Anda memberi tahu saya seperti apa tampilan di terminal curl ??
pengguna739711

hmmm dalam kasus saya, saya perlu mengelilingi URL target dengan tanda kutip
Jonathan Lin

1
Saya dapat menghapus sakelar -v (verbose) dan -H "Terima: ..." dari atas dan masih berfungsi dengan baik untuk saya.
Dan

2
pikir Anda dapat menghapus -X POST juga karena Anda menggunakan -d
Luke W
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.