ทีมงานของเราเดิมประกอบด้วยนักพัฒนาด้านเซิร์ฟเวอร์ส่วนใหญ่ที่มีความเชี่ยวชาญขั้นต่ำใน Javascript ใน ASP.NET เราเคยเขียนตรรกะ UI จำนวนมากในโค้ดหลังหรือมากกว่านั้นเมื่อเร็ว ๆ นี้ผ่านคอนโทรลเลอร์ใน MVC
เมื่อไม่นานมานี้นักพัฒนาด้านลูกค้าระดับสูง 2 คนได้เข้าร่วมทีมของเรา พวกเขาสามารถทำได้ใน HTMl / CSS / Javascript ทุกอย่างที่เราสามารถทำได้กับโค้ดฝั่งเซิร์ฟเวอร์และการควบคุมเว็บฝั่งเซิร์ฟเวอร์:
- แสดง / ซ่อนส่วนควบคุม
- ทำการตรวจสอบ
- ควบคุมการรีเฟรช AJAX
ดังนั้นฉันจึงเริ่มคิดว่าบางทีมันอาจจะมีประสิทธิภาพมากกว่าในการสร้าง API ระดับสูงรอบตรรกะทางธุรกิจของเราอย่างเช่น Amazon Fulfillment API: http://docs.amazonwebservices.com/fws/latest/APIReference/ลูกค้า นักพัฒนาด้านจะใช้เวลามากกว่า UI ในขณะที่นักพัฒนาด้านเซิร์ฟเวอร์จะเน้นเฉพาะตรรกะทางธุรกิจ
ดังนั้นสำหรับการสั่งซื้อระบบคุณจะมี API ระดับสูงเช่น:
OrderService.asmx
CreateOrderResponse CreateOrder(CreateOrderRequest)
AddOrderItem
AddPayment
-
SubmitPayment
-
GetOrderByID
FindOrdersByCriteria
...
จะมีการเข้าถึง JSON / REST ไปยัง API ดังนั้นจึงง่ายต่อการใช้งานจาก UI ฝั่งไคลเอ็นต์ เราสามารถใช้ API นี้สำหรับการพัฒนา UI ภายในและสำหรับบุคคลที่ 3 เพื่อสร้างแอปพลิเคชันของตนเอง
ด้วยความก้าวหน้าใน Javascript และความพร้อมใช้งานของนักพัฒนาฝั่งไคลเอ็นต์ที่ดีมันเป็นเวลาที่ดีในการกำจัด code-behind / controllers และแค่มุ่งพัฒนา API ระดับสูง (ala Amazon) ที่นักพัฒนาฝั่งไคลเอ็นต์สามารถใช้งานได้หรือไม่?