ฉันกำลังจะสร้างแอปพลิเคชันบนเว็บเป็นจำนวนมากตั้งแต่เริ่มต้น (ดูhttp://50pop.com/codeเพื่อดูภาพรวม) ฉันต้องการให้พวกเขาสามารถเข้าถึงได้จากไคลเอนต์ที่แตกต่างกันมากมาย: เว็บไซต์ส่วนหน้าแอพสมาร์ทโฟนสมาร์ทโฟนบริการเว็บแบ็คเอนด์ ฯลฯ ดังนั้นฉันต้องการ JSON REST API สำหรับแต่ละรายการ
นอกจากนี้ฉันชอบทำงานกับส่วนแบ็คเอนด์ดังนั้นฉันจึงฝันว่าฉันจะยังคงมุ่งเน้นไปที่ API และจ้างคนอื่นเพื่อสร้าง UI ส่วนหน้าไม่ว่าจะเป็นเว็บไซต์ iPhone, Android หรือแอปอื่น ๆ
โปรดช่วยฉันตัดสินใจด้วยว่าฉันควรใช้วิธีใด:
รวมกันในรถไฟ
สร้างเว็บแอพ Rails ที่ได้มาตรฐานมาก ๆ ในคอนโทรลเลอร์ให้ทำสวิตช์ตอบกลับเพื่อให้บริการ JSON หรือ HTML การตอบสนอง JSON นั้นเป็น API ของฉัน
Pro:แบบอย่างมากมาย มาตรฐานที่ยอดเยี่ยมและตัวอย่างมากมายในการทำสิ่งนี้
คอนดิชั่น:ไม่จำเป็นต้องให้ API เหมือนกับแอพเว็บ ไม่ชอบ if / then response_with switch approach การผสมสองสิ่งที่แตกต่างกันมาก (UI + API)
เซิร์ฟเวอร์ส่วนที่เหลือ + ไคลเอนต์ JAVASCRIPT-HEAVY
สร้างเซิร์ฟเวอร์ REST API ของ JSON เท่านั้น ใช้ Backbone หรือ Ember.js สำหรับ JavaScript ฝั่งไคลเอ็นต์เพื่อเข้าถึง API โดยตรงโดยแสดงแม่แบบในเบราว์เซอร์
Pro:ฉันชอบการแยก API และไคลเอนต์ คนฉลาดบอกว่านี่เป็นวิธีที่จะไป ยิ่งใหญ่ในทางทฤษฎี ดูเหมือนทันสมัยและน่าตื่นเต้น
คอนดิชั่น:แบบอย่างไม่มากนัก มีตัวอย่างไม่มากที่ทำได้ดี ตัวอย่างสาธารณะ (twitter.com) รู้สึกซบเซาและเปลี่ยนไปจากแนวทางนี้
เซิร์ฟเวอร์ REST + ไคลเอนต์ HTML ฝั่งเซิร์ฟเวอร์
สร้างเซิร์ฟเวอร์ REST API ของ JSON เท่านั้น สร้างเว็บไซต์เว็บไซต์ HTML พื้นฐานที่เข้าถึง REST API เท่านั้น ลดจาวาสคริปต์ฝั่งไคลเอ็นต์
Pro:ฉันชอบการแยก API และไคลเอนต์ แต่การให้บริการ HTML5 ธรรมดานั้นค่อนข้างจะเข้าใจผิดได้และไม่เน้นลูกค้า
คอนดิชั่น:แบบอย่างไม่มากนัก มีตัวอย่างไม่มากที่ทำได้ดี กรอบงานไม่รองรับสิ่งนี้เช่นกัน ไม่แน่ใจว่าจะเข้าใกล้มันอย่างไร
โดยเฉพาะการหาคำแนะนำจากประสบการณ์ไม่ใช่เฉพาะในเชิงทฤษฎี