2013-02-17 28 views
47

Tôi đang cố viết một máy chủ dựa trên express.js tùy chỉnh cho một ứng dụng Ember.js. Tôi nhận được khá tốt nhưng tôi liên tục bị mắc kẹt cố gắng đoán những gì JSON phản ứng Ember dữ liệu được mong đợi tại một thời điểm nhất định.Danh sách đầy đủ các phản hồi JSON dự kiến ​​cho DS.RESTAdapter là gì?

Tài liệu hoàn toàn mới này là khởi đầu tuyệt vời http://emberjs.com/guides/models/the-rest-adapter/ nhưng chưa hoàn thành đủ.

đâm của tôi trong bóng tối đã dẫn tôi hiểu (Ember pre4, Ember dữ liệu 11):

Context        Server URL   Method  Req. Data     Resp. Data 
~~~~~~~        ~~~~~~~~~~   ~~~~~~  ~~~~~~~~~     ~~~~~~~~~~ 
Getting a list of all users   /users    GET         {"users":[{...},{...}]} 
Getting a particular user    /users/123   GET         {"user":{...}} 
Creating a user      /users    POST  {"user":{...}}    ??? 
Updating a user      /users/123   PUT  {"user":{...}}    ??? 
Deleting a user      /users/123   DELETE  ???      ??? 

Creating a user (bulkUpdate)   /users    POST  {"users":[{...},{...}]} ??? 
Updating a user (bulkUpdate)   /users/bulk   PUT  {"users":[{...},{...}]} ??? 
Deleting a user (bulkUpdate)   /users/123   DELETE  ???      ??? 

Ai đó có thể giúp tôi điền vào một số trong những khoảng trống?

Chỉnh sửa, danh sách đầy đủ của phản ứng JSON dự kiến ​​

Những phản ứng được lượm lặt từ ember-data REST adapter unit tests và bằng cách quan sát lưu lượng mạng trên Example Ember Data app.

Context        Server URL   Method  Req. Data     Resp. Data 
~~~~~~~        ~~~~~~~~~~   ~~~~~~  ~~~~~~~~~     ~~~~~~~~~~ 
Getting a list of all users   /users    GET         {"users":[{...},{...}]} 
Getting a particular user    /users/123   GET         {"user":{...}} 
Creating a user      /users    POST  {"user":{...}}    {"user":{...}} 
Updating a user      /users/123   PUT  {"user":{...}}    {"user":{...}} 
Deleting a user      /users/123   DELETE  N/A      null 

Creating a user (bulkCommit)   /users    POST  {"users":[{...},{...}]} {"users":[{...},{...}]} 
Updating a user (bulkCommit)   /users/bulk   PUT  {"users":[{...},{...}]} {"users":[{...},{...}]} 
Deleting a user (bulkCommit)   /users/bulk   DELETE  {"users":[1,2]}   {"users":[1,2]} 
+0

Vì vậy, dựa trên bài đăng này và nghiên cứu khác. Tôi đã viết ý chính này để truyền tải hầu hết các trường hợp. Xin vui lòng để lại phản hồi. Cảm ơn. https://gist.github.com/ldong/c52f491a88935a8c24337c1326586f99 –

Trả lời

24

Thay vì đâm trong bóng tối, có một cái nhìn tại rest-adapter-test

Ví dụ, để điền vào câu hỏi của bạn trên dữ liệu đáp ứng các bản cập nhật số lượng lớn, L738 mô tả dữ liệu đáp ứng mong đợi:

ajaxHash.success({ people: [ 
    { id: 1, name: "Brohuda Brokatz" }, 
    { id: 2, name: "Brocarl Brolerche" } 
]}); 
+0

Woah, tôi chắc rằng tôi đã thấy điều đó sớm hơn. Cảm ơn bạn Michael! –

+3

Liên kết đã chết, vui lòng cập nhật. – iConnor

+1

Cập nhật liên kết đã lỗi thời. Nếu nó di chuyển trong tương lai, về cơ bản chỉ cần đi đến dự án dữ liệu ember trên github và tìm kiếm dự án cho rest_adapter_test.js - https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/ adapter/rest_adapter_test.js –

0

Hiện đang tìm các cụm từ ajaxResponse( trong rest-adapter-test.js nguồn được lồng trong các ô test("create - a payload with a new ID and data applies the updates" giống nhau để đọc phản hồi bắt buộc của máy chủ.

Các vấn đề liên quan