¿En qué situaciones necesita usar una API?

Interfaz de programación de aplicaciones, se puede escuchar en el nombre es una interfaz para programas de aplicación. Entonces, si desea automatizar algo en un programa como Blender, por ejemplo o OpenOffice, deberá buscar su especificación API.

Hay varias formas de conectarse a un programa como ese. Algunos de ellos están sobre una interfaz de red / socket, algunos están sobre una biblioteca de enlaces dinámicos, algunos sobre enlace estático.

Ejemplos:

Enlace directo: Blender sería programable directamente. Por lo tanto, debe vincular sus programas directamente al software, utilizar las funciones que exporta Python of Blender y puede automatizar los procesos con él.

Jugué con eso para crear el fondo de mi cuenta de G + y Twitter, que puedes encontrar si buscas mi nombre en Quora.

API de socket: la mayoría de los servidores SQL tienen una API que responderá a las conexiones del cliente. Eso puede considerarse una API. Lo hice de esa manera en los días de AmigaRobots, cuando los programas se comunicaban con el servidor a través de un socket para ejecutar sus pequeños robots y luchar entre ellos.

Enlace de DLL (Biblioteca de enlaces dinámicos):

Típico de eso es la API de Windows o el kernel de Linux. Si bien las funciones de Kernel están disponibles directamente, puede vincular funciones adicionales a su programa. Es casi tan efectivo como el enlace directo en aspectos de velocidad, pero es mejor para compartir código con muchos programas que lo ejecutan. SQLite, por ejemplo, ha elegido una forma diferente de comunicarse con el cliente, porque la comunicación a través de un enlace directo o un enlace dinámico siempre es mucho más rápido que una API a través de un socket.

Y en este orden, la velocidad generalmente disminuirá:

  1. enlace directo
  2. enlace dinámico
  3. conexión de zócalo

En resumen, si desea controlar otro programa mediante su programa, debe usar su API, su interfaz de programación de aplicaciones. Hay mejores y peores interfaces.

Algunas de las peores interfaces si solicita velocidad y rendimiento que puede encontrar son sockets. Pero también son la API más versátil, por lo que los programas pueden comunicarse con esa API incluso si se ejecutan en otro lugar y no en la computadora.

Si está utilizando la vinculación de DLL, debe estar en la misma computadora, pero se está ejecutando en un espacio diferente en la memoria y es posible que pueda compartir código con otros programas.

La vinculación directa es la forma más rápida, pero solo puede compartir este tipo de vinculación con programas que generó usted mismo y no se puede compartir con nadie más. Pero el proceso de vinculación podría permitir que el sistema optimice la vinculación, de modo que se convierta en “en línea”, por ejemplo.

Esto significa que, en lugar de llamar a una subrutina, la subrutina se copia directamente en el código y se ejecuta como parte integral de la misma. Llamar a subrutinas suele ser un proceso “lento”, que utiliza hasta 60 ciclos, mientras que un código de operación habitual se ejecuta en solo uno. Entonces, si es algo trivial, eso está sucediendo en la subrutina, puede ganar velocidad al vincular directamente hasta un factor 60 si está en línea. Pero ese es el peor de los casos, por lo general no es tan dramático.

Pero también significa que su API no debe emitir un asunto trivial a un programa o se convertirá en el cerdo de su aplicación. Llamar a una biblioteca, una DLL, siempre se realiza mediante un acceso indirecto a la memoria, para “C” solo digo: “puntero”. Este acceso es un poco más lento que el salto directo y, por lo tanto, la llamada de subrutina puede pasar de 60 a 100 ciclos o algo en el peor de los casos.

Una llamada puede ser tan rápida como un ciclo, es solo que casi nunca sucede.

Espero poder ayudar sobre API y aclarar algunas cosas.

En realidad es bastante simple. Las API son para cuando desea estandarizar las conexiones. Entonces use API:

  • cuando tiene otros servicios que necesitan conectarse a una interfaz común
  • cuando tiene otros usuarios que necesitan conectarse a una interfaz común

¿Qué es una interfaz común? Bien:

  • página web
  • aplicación movil
  • aplicación de escritorio
  • etc.

Cuando NO los usaría es si desea que su aplicación funcione sin conexión. Este es un enfoque general de ‘aplicación de escritorio’. En cuyo caso, necesitaría agrupar todo en una aplicación monolítica.

More Interesting

¿Por qué debería usar Unix para PHP para el desarrollo?

¿Dónde puedo obtener respuestas gratuitas sobre desarrollo web, de profesionales?

¿Qué idioma debo usar para crear un chatbot para un sitio basado en Laravel?

¿Puedo usar la misma palabra clave en mi sitio web para dos entidades separadas? Estoy escribiendo contenido para mi sitio web de madera, y quiero saber si puedo usar la palabra clave 'revestimiento de madera' para una de las páginas de categoría y una publicación de blog (el blog está en el mismo sitio).

¿Son seguros los archivos y bases de datos en sitios web / servidores web contra ransomware?

¿Cómo obtiene datos appcomments.com, en particular las reseñas, de la tienda de aplicaciones de Apple?

¿Cuál es la mejor manera de usar la validación si conoce JavaScript?

¿Cuál es la mejor plataforma para construir un sitio web personal?

¿Cuánto cobra por el mantenimiento y las actualizaciones continuas del sitio de WordPress?

Mientras escribo código (Java) para un proyecto personal, fácilmente me quedo sin inspiración y lo abandono a la mitad. ¿Es esta una experiencia común entre los desarrolladores y cómo puedo mantener el impulso para completar un proyecto?

¿Cuál puede ser una buena pregunta de investigación para una tesis de maestría sobre Ruby on Rails?

¿Cuál es la diferencia entre un sitio web y un portal web?

¿Funcionará DRM integrado en HTML?

¿Cómo se logra el escalado en node.js?

Cómo convertirse en un desarrollador de juegos, desde principiante hasta experto