2010-06-28 17 views
6

En mis 4 años de experiencia, he desarrollado una gran cantidad de aplicaciones web. Ahora bien, el concepto de web programable cada vez más y más popular, las nuevas APIs están siendo liberados casi todos los días. Me gustaría desarrollar una API Java/biblioteca para algunas de estas endpoints.Ex stackapps, reddit, digg, etc ... Lo que me gustaría saber de lo que la gente está,desarrollo API - Las consideraciones de diseño

  • ¿Cómo es la API de la web normal aplicaciones difieren de la API de estos bibliotecas. O ¿cuál es la diferencia entre estos dos desde el diseño perspectiva
  • ¿Cuáles son las mejores prácticas de desarrollo API prácticas.
  • ¿Cuáles son todos los factores que debe considerar antes de diseñar la API

.

Por favor, comentar, si los datos no son suficientes.

+1

Buena pregunta. En busca de respuestas interesantes de apiladores. –

Respuesta

13

Estabilidad

Si usted ofrece una API para su aplicación web, es probablemente porque desea que otras personas para construir aplicaciones de usarlo. Si no es estable que le odian por lo que obligó a seguir a través de sus frecuentes cambios . Si esto lleva demasiado tiempo, su sitio puede permanecer sin funcionar por un tiempo prolongado mientras se dan cuenta de la nueva forma de hacer las cosas en su API.

compacidad

desea que el API para ser completa, pero compacta, al igual que en no demasiado para recordar.

ortogonalidad

Diseño que lo que no es una y sólo una manera de cambiar cada propiedad o activar una acción. Las acciones en una API ortogonal deben tener efectos secundarios mínimos (si acaso alguna) .

Además, no es una buena práctica para eliminar una característica de una API pública una vez lanzada.

Seguridad y autenticación

Dado que la API se expone web, usted tiene que autenticar cada solicitud y conceder acceso apropiado. El sentido común de la seguridad se aplica aquí.

respuestas rápidas o romper en pedazos

yo creo en un entorno web que deberíamos tener respuestas rápidas y evitar solicitudes que tendrán demasiado tiempo para completar. Si es inevitable, entonces es mejor enviar un ACK y dividir la tarea en varias partes y llamadas posteriores.

0

Desde mi experiencia, todo bien API no se hicieron para resolver un problema genérico, pero para resolver un problema para algunos que requiere una cierta abstracción. Esta abstracción evoluciona a medida que cambian el requisito y/o la capa subyacente.

Así que, en lugar de encontrar la API que lo hará todo, comenzaría por encontrar uno o dos problemas de caso en que tu API podría ayudar.

+0

No creo que quiera encontrar o incluso crear una nueva API, pero crea una envoltura alrededor de una API existente para hacer que la web sea invisible. ¿Es esto correcto, chedine? –

+0

No. Quiero crear una API. Por ejemplo, digg ha anunciado sus puntos finales HTTP para acceder a sus recursos. Me gustaría construir una API java de código abierto que se pueda conectar a estos puntos finales bajo el capó. – chedine

+0

Todavía es el mismo problema. No se puede simplemente tener una interfaz que agregue todo, ¿verdad? No puedes simplemente tomar las cosas comunes y dejar de lado las cosas especializadas. Si se trata de crear un contenedor que admita varias API de sitios web, ¿no es una API en sí misma? – Wernight

Cuestiones relacionadas