Đây là một vấn đề đã làm phiền tôi một thời gian. Tôi đang xây dựng một hàm API sẽ nhận dữ liệu trong json và đáp ứng trong json. Kiểm tra điều khiển của tôi chạy tốt (Vì tôi trừu tượng rằng dữ liệu được giải mã đã có từ JSON và chỉ câu trả lời cần được giải thích).Rails Kiểm tra API JSON Yêu cầu POST với PARAMS trong JSON
Tôi cũng biết rằng hàm hoạt động tốt vì tôi đã sử dụng curl để kiểm tra nó với các đối số JSON và nó hoạt động hoàn hảo. (ví dụ: curl -i --header "Chấp nhận: application/json" --header "Content-Type: application/json" -d '{"test": {"email": "[email protected]"} Nhưng rõ ràng là tôi muốn viết các yêu cầu (tính năng) để kiểm tra điều này một cách tự động và cách tôi thấy nó sẽ hoạt động chính xác như curl, tức là, nhấn dịch vụ của tôi giống như một cuộc gọi bên ngoài. Điều đó có nghĩa là tôi muốn chuyển các đối số trong JSON và nhận được câu trả lời. Tôi khá lạc lõng vì tất cả các ví dụ tôi có thể thấy mọi người đối xử với các đối số vì nó đã được giải mã.
Câu hỏi của tôi là: Tôi đang tuân theo một tiền đề sai khi muốn gửi các đối số và yêu cầu dưới dạng JSON vì tôi sẽ kiểm tra xem đường ray có hoạt động hay không, vì đây là trách nhiệm của nó? Nhưng tôi muốn thấy mã của tôi mạnh mẽ như thế nào để lập luận sai và muốn thử với JSON.
một cái gì đó thuộc loại này:
it "should return an error if there is no correct email" do
params = {:subscription => {:email => "andre"}}
post "/magazine_subscriptions", { 'HTTP_ACCEPT' => "application/json", 'Content-Type' => 'application/json', 'RAW_POST_DATA' => params.to_json }
end
Bạn có biết cách này là có thể? và xin vui lòng cho tôi biết nếu bạn nghĩ rằng tôi đang thử nghiệm nó sai.
mọi điều tốt đẹp,
Andre
Để ngắn gọn, viết nó như 'bài '/ magazine_subscriptions', params.to_json, định dạng:: json'. – user664833
@ user664833 đó là thanh lịch hơn – Tudorizer
Tôi không nghĩ rằng .to_json là cần thiết nếu bạn đã định dạng nó như là một đối tượng json. Tôi nghĩ rằng nó nên là 'post'/magazine_subscriptions ', params, format:: json' –