Tôi sắp tạo ra một loạt các ứng dụng web từ đầu. (Xem http://50pop.com/code để biết tổng quan.) Tôi muốn họ có thể được truy cập từ nhiều khách hàng khác nhau: trang web mặt trước, ứng dụng điện thoại thông minh, dịch vụ web phụ trợ, v.v. Vì vậy, tôi thực sự muốn một API REST REST cho mỗi cái.
Ngoài ra, tôi thích làm việc ở mặt sau, vì vậy tôi mơ mộng về việc tôi tập trung hoàn toàn vào API và thuê người khác tạo giao diện người dùng, cho dù là trang web, iPhone, Android hoặc ứng dụng khác.
Xin hãy giúp tôi quyết định cách tiếp cận nào tôi nên thực hiện:
CÔ GÁI Ở RAILS
Tạo một ứng dụng web Rails rất chuẩn. Trong bộ điều khiển, thực hiện chuyển đổi answer_with, để phục vụ JSON hoặc HTML. Phản hồi JSON là API của tôi.
Pro: Rất nhiều tiền lệ. Tiêu chuẩn tuyệt vời và nhiều ví dụ về làm mọi thứ theo cách này.
Con: Không nhất thiết muốn API giống như ứng dụng web. Không thích if / then answer_with với cách tiếp cận chuyển đổi. Trộn hai thứ rất khác nhau (UI + API).
REST SERVER + KHÁCH HÀNG JAVASCRIPT-HEAVY
Tạo một máy chủ API REST chỉ JSON. Sử dụng Backbone hoặc Ember.js cho JavaScript phía máy khách để truy cập API trực tiếp, hiển thị các mẫu trong trình duyệt.
Pro: Tôi thích sự tách biệt của API & client. Người thông minh nói rằng đây là con đường để đi. Tuyệt vời trong lý thuyết. Có vẻ tiên tiến và thú vị.
Con: Không có nhiều tiền lệ. Không có nhiều ví dụ về điều này được thực hiện tốt. Các ví dụ công khai (twitter.com) cảm thấy chậm chạp & thậm chí đang chuyển hướng khỏi phương pháp này.
REST SERVER + CLIENT HTML CLIENT
Tạo một máy chủ API REST chỉ JSON. Tạo một ứng dụng khách trang web HTML cơ bản, chỉ truy cập API REST. JavaScript phía máy khách ít hơn.
Pro: Tôi thích sự tách biệt của API & client. Nhưng việc phục vụ HTML5 đơn giản là khá dễ dàng và không cần nhiều khách hàng.
Con: Không có nhiều tiền lệ. Không có nhiều ví dụ về điều này được thực hiện tốt. Các khung không hỗ trợ điều này là tốt. Không chắc làm thế nào để tiếp cận nó.
Đặc biệt là tìm kiếm lời khuyên từ kinh nghiệm, không chỉ trong lý thuyết.