¿Cómo se elige la API correcta para usar?

Esta es una pregunta bastante abierta y depende del tipo de aplicación que intente desarrollar. Para algunos dominios problemáticos, hay una API estándar de facto de la industria que casi todos usan para una tarea determinada. La API de Google Maps es un ejemplo de esto. Por supuesto, existen otras API de mapeo, pero Google es (al menos en mi experiencia) la más popular. Dicho esto, hay algunas cosas a tener en cuenta al buscar en las API:

  1. ¿Qué tan bien documentado está el API? Una API bien documentada ahorrará mucho tiempo y esfuerzo. Cuanto mejor sea la documentación, más fácil podrá comenzar a desarrollar con ella.
  2. ¿La API viene con enlaces de idioma para el idioma que usará? Si bien es bastante fácil crear un contenedor para la mayoría de las API en casi cualquier lenguaje de programación moderno, tener una biblioteca de enlaces de idiomas distribuidos por el desarrollador le ahorra mucho tiempo y esfuerzo. Los enlaces de Python de EchoNest son un buen ejemplo.
  3. ¿Cuál es el paradigma de la API? Las API RESTful están en boga en este momento, y lo han estado por un tiempo. Saber cómo la estructura de la API juega en su código ayuda mucho a acelerar el tiempo de desarrollo. Además, el lenguaje de transporte utilizado juega un papel muy importante. Las API que envían JSON o XML (la mayoría lo hacen en estos días, pero tengo la sensación de que algunas probablemente no) serán mucho más fáciles de analizar desde las capacidades JSON y XML están programadas en la biblioteca estándar de solo sobre cada lenguaje de programación moderno.

Cosas a tener en cuenta:

  • Tipo de API según el punto final de su aplicación web que obtiene los datos: (REST, SOAP o XML-RPC, JSON-RPC). Yo diría que vaya con REST para estas aplicaciones web basadas en API estándar de estos días.

  • El tiempo de inactividad para la API, tal vez sea mejor con el que tenga el menor tiempo de inactividad y la mayor disponibilidad Esas son dos cosas diferentes, porque algunas API tienen tiempos de inactividad, pero se reemplazan por una mayor disponibilidad.
  • Costo de la API por llamadas, algunas API se hacen solo para absorber dinero de sus usuarios. Quizás ir con la API que proporciona más datos VS llamadas de solicitud sería mejor.
  • Verificación de los límites de la solicitud , considerando las limitaciones de la API Algunas compañías limitan las llamadas en medio de una acción muy importante, debido a sus limitaciones de rendimiento de alojamiento.
  • Seguridad : elija la API que de alguna manera puede usar solo si puede autenticarse desde su extremo, en lugar de algo abierto para todos los demás.

Creo que esta pregunta se puede ver de varias maneras. Si se está preguntando acerca de diferentes API del mismo tipo, por ejemplo, la API de Google Maps frente a la API de mapquest, la respuesta está determinada por una serie de factores:
* ¿Qué tan bueno es el sitio de soporte? ¿Hay foros de usuarios activos? ¿Hay conferencias? ¿El desarrollador responde a las solicitudes?
* ¿Cómo está la documentación? ¿Tiene un explorador API (función en vivo “pruébalo”)?
* ¿Cuál es la amplitud de las funciones cubiertas?
* ¿Está activamente en desarrollo, o es básicamente estático?
* ¡Algunas compañías desarrollan su API como una ocurrencia tardía! mientras que para otros es una parte integral del software en general. En particular, es mejor si la compañía realmente usa la API en sí misma en sus propios productos, “comiendo su propio alimento para perros” como a veces se le llama. Si lo hacen, es más probable que esté bien respaldado y tenga muchas opciones.
* ¿Es confiable? ¿Cuál es la disponibilidad? ¿Hay interrupciones programadas?
* ¿Cobran por la API?
* ¿Tiene una tasa limitada? Si es así, ¿es un modelo flexible que permite ráfagas de tráfico en momentos de alta demanda para su aplicación?

Otra forma de ver su pregunta es si está decidiendo formas de llamar a una API o de otra manera entre las opciones para la API de una empresa determinada.
* Si tienen una API RPC (por ejemplo, SOAP) y una API REST, ¿cuál debe elegir? Esta puede ser una pregunta difícil, pero para la mayoría de los propósitos, vaya con REST. Es probable que tenga menos problemas con diferentes versiones, probablemente será más fácil probar y desarrollar, etc. Hay una razón por la cual las personas se han cambiado casi por completo a las API REST. Por otro lado, de alguna manera, las API SOAP pueden tener mejores herramientas como los SDK del lado del cliente. Pero en general, recomendaría ir con REST.
* ¿Debería usar JSON o XML? A menos que tenga alguna razón importante para usar XML, use JSON. Es casi seguro que sea más fácil de usar.
* ¿Debería usar un SDK de enlace de idioma o hacer las llamadas como HTTP directo? Esto dependería de cuán bueno sea el soporte de idiomas, pero para muchas API REST probablemente sea igual de fácil usar las funciones de invocación http nativas en el SDK. No soy fanático de fingir que estás haciendo una llamada a un método local cuando realmente está llamando a una API en todo el mundo. Un buen ejemplo de esto es el hecho de que algunos SDK dificultan la búsqueda de detalles sobre fallas, como obtener la carga útil de respuesta en caso de un error HTTP 500 o 404.