Creo que el diseño centrado en API es una gran cosa. Actualmente estoy construyendo uno para un inicio que luego puede admitir muchas interfaces y / o dispositivos diferentes.
Sin embargo, una “desventaja” (pero reparable) sería: es fácil escribir una API mal diseñada . Hay tantas implementaciones diferentes de API disponibles, tantas formas diferentes de hacer las cosas. Es difícil saber qué es realmente “correcto”.
Una buena API toma un poco de tiempo para pensar y planificar. Hay muchas decisiones que tomar que probablemente sean específicas para su aplicación. Realmente vale la pena hacerlo correctamente desde el principio, no solo hackearlo juntos.
- ¿Cuál es la necesidad de Spring MVC a pesar de que tenemos Spring Core para desarrollar aplicaciones web?
- Si Java es más rápido que JavaScript, ¿por qué la era de las aplicaciones web de Spring falló tan miserablemente?
- ¿Dónde puedo aprender a hacer aplicaciones basadas en web usando C #?
- ¿Qué marco debe aprender un principiante dado que hay tantas opciones: Node.js, AngularJS, MeteorJS, Backbone, etc.?
- ¿Cómo le explicaría IFTTT a un laico?
La razón por la cual las API RESTful son tan inconsistentes en los diferentes servicios es porque REST no es un estándar, no es un protocolo. Es un estilo arquitectónico. Algunas cosas a tener en cuenta para su API serían; qué verbos HTTP admitir, qué estructura de URI seguir, cómo devolver mensajes de error de manera consistente, cómo manejar la selección parcial, el control de versiones, la autenticación, la paginación, etc. y así sucesivamente. debatido a menudo), pero hay muchas maneras que no son tan geniales!
Lo más importante de todo, su API debe ser consistente en todo momento. Se convierten en un dolor de bola masivo muy rápido si no.
Como nota al margen, hay algunos videos excelentes en YouTube de Apigee sobre este tema. Sus videos me parecieron útiles para comprender algunas de las decisiones que tomar. Sin mencionar algunas excelentes explicaciones / debates sobre Stack Overflow.
Para cualquier persona interesada, recomiendo este video para obtener más información: