Saya akan membuat banyak aplikasi web dari awal. (Lihat http://50pop.com/code untuk ikhtisar.) Saya ingin mereka dapat diakses dari berbagai klien: situs web front-end, aplikasi ponsel cerdas, layanan web backend, dll. Jadi saya benar-benar menginginkan API SISA JSON untuk masing-masing.
Juga, saya lebih suka bekerja di back-end, jadi saya melamunkan saya menjaga fokus saya murni pada API, dan mempekerjakan orang lain untuk membuat UI front-end, apakah situs web, iPhone, Android, atau aplikasi lainnya.
Tolong bantu saya memutuskan pendekatan mana yang harus saya ambil:
BERSAMA DALAM KERETA API
Buat aplikasi web Rails yang sangat standar. Di controller, lakukan saklar response_with, untuk melayani JSON atau HTML. Respons JSON adalah API saya.
Pro: Banyak preseden. Standar hebat & banyak contoh melakukan hal-hal seperti ini.
Con: Jangan selalu ingin API sama dengan aplikasi web. Tidak suka jika / kemudian response_with beralih pendekatan. Menggabungkan dua hal yang sangat berbeda (UI + API).
REST SERVER + JAVASCRIPT-KLIEN BERAT
Buat server REST API JSON-only. Gunakan Backbone atau Ember.js untuk JavaScript sisi klien untuk mengakses API secara langsung, menampilkan templat di browser.
Pro: Saya suka pemisahan API & klien. Orang pintar mengatakan ini adalah jalan yang harus ditempuh. Besar dalam teori. Tampak canggih dan menarik.
Con: Tidak banyak preseden. Tidak banyak contoh ini dilakukan dengan baik. Contoh publik (twitter.com) merasa lamban & bahkan beralih dari pendekatan ini.
REST SERVER + SERVER-SIDE HTML CLIENT
Buat server REST API JSON-only. Buat klien situs web HTML dasar, yang mengakses API REST saja. Lebih sedikit JavaScript sisi klien.
Pro: Saya suka pemisahan API & klien. Tapi melayani HTML5 biasa sangat mudah & tidak intensif klien.
Con: Tidak banyak preseden. Tidak banyak contoh ini dilakukan dengan baik. Kerangka kerja tidak mendukung ini juga. Tidak yakin bagaimana cara mendekatinya.
Terutama mencari nasihat dari pengalaman, bukan hanya secara teori.