2013-03-21 10 views
14

Tôi muốn sử dụng dữ liệu ember trong một dự án mà tôi đang xây dựng, nhưng API tôi đang làm việc không tuân theo các quy ước REST.Dữ liệu ember trong môi trường không RESTful

Ví dụ, tất cả các yêu cầu HTTP là POST và quy ước đặt tên của các điểm cuối là duy nhất đối với các hành động mà chúng thực hiện. ví dụ. /api/thing/retrieve sẽ yêu cầu tôi đăng một đối tượng JSON với một số tham số và sẽ trả về 'điều' cho tôi.

Tôi có sử dụng bộ điều hợp Restful và mở lại lớp và xác định lại các chức năng tìm khác nhau không?

HOẶC

Tôi có phải thực hiện một bộ chuyển đổi mới?

HOẶC

Nên tôi chỉ bỏ ember dữ liệu và và sử dụng ajax trong các mô hình của tôi (hoặc thậm chí có thể điều khiển)?

Tôi không chắc chắn cách tôi xử lý bất kỳ tùy chọn nào trong số các tùy chọn đó. Mọi hướng dẫn sẽ được đánh giá cao.

+0

Tôi cũng đang tìm cách xử lý các hành động không RESTful – tigrish

+0

Bất kỳ cách nào tốt hơn? – woohoou

Trả lời

1

Thông tin duy nhất mà tôi đã thấy về chủ đề này là bài viết của những người tham gia Diễn đàn được liên kết bên dưới.

http://eviltrout.com/2013/03/23/ember-without-data.html

Cá nhân tôi đã đùa giỡn xung quanh với các phương pháp reopenClass trong bài viết, và có lẽ sẽ thả nó vào một mixin hoặc một cái gì đó về việc đó nếu tôi đã có một API phù hợp nhưng không-REST mà tôi đã gọi điện thoại thường xuyên .

+0

Vì vậy, nếu tôi hiểu điều này một cách chính xác, bạn nói "không tạo ra một bộ điều hợp khách hàng", thay vào đó, thêm phương pháp ajax của riêng bạn vào một mô hình. – tigrish

+0

Phương pháp trong câu trả lời ở trên chắc chắn là mạnh mẽ hơn nhiều và là một cái gì đó tôi muốn thử nghiệm cho bất cứ điều gì phức tạp. Tuy nhiên, tôi chưa đào sâu vào các tài liệu về bộ chuyển đổi dữ liệu/dữ liệu ember để xem những gì có liên quan đến việc viết một bộ điều hợp tùy chỉnh. Đối với một vài mô hình, tôi vẫn có lẽ sẽ chỉ cần đặt các cuộc gọi ajax trong; phức tạp hơn điều đó và nghiên cứu và viết sẽ đáng giá thời gian. – nrion

0

Tôi sẽ nói rằng, nếu API của bạn nhất quán (đáng tin cậy) thì bạn nên tạo/mở rộng DS.Adapter (không phải DS.RESTAdapter) để triển khai cho đặc tả của bạn.

Tất cả các móc đều ở đó, bạn sẽ chỉ kết thúc việc xác định nó khi tất cả các mô hình có thể sử dụng.

Tôi cũng sẽ đọc qua mã Bộ điều hợp cơ bản - (https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/basic_adapter.js) có thể là điểm tốt hơn cho bạn sau đó là DS.Adapter.

Nếu API của bạn không đáng tin cậy, thì có thể bạn nên sử dụng lệnh $ .ajax() nếu cần. Nhưng, theo ý kiến ​​của tôi, điều đó không quy mô tốt.

Một liên kết đáng đọc khi nhìn vào Adaptor cơ bản: http://emberjs.com/blog/2013/03/22/stabilizing-ember-data.html

Một lưu ý cuối cùng, xây dựng một ORM hay thậm chí là một cái gì đó đơn giản hơn sau đó một ORM không phải là một nhiệm vụ tầm thường, mà đối với tôi, làm cho sử dụng ember dữ liệu có giá trị nỗ lực, và có đôi khi đau.

+0

Bạn có bất kỳ ví dụ nào về hành động không phải REST trong bộ điều hợp tùy chỉnh hay không (tốt nhất là một trong số đó được gọi trên một cá thể mô hình)? Đọc qua adapter cơ bản về cơ bản chỉ cho thấy việc thực hiện cho các hành động REST hiện có. – tigrish

+0

@tigrish điều duy nhất mà tôi có là http://emberjs.com/blog/2013/03/22/stabilizing-ember-data.html nói về Bộ điều hợp cơ bản và đưa ra ví dụ về việc triển khai. – mspisars