Header Ads Widget

Ticker

6/recent/ticker-posts

¿Cuál es la diferencia entre una API y un SDK?

 

cuál-diferencia-entre-un-SDK-y-API2

Comprender la diferencia entre una API (interfaz de programación de aplicaciones) y un SDK (kit de desarrollo de software), y saber cuándo proporcionar cada uno, es increíblemente importante para fomentar un ecosistema de desarrolladores. En el panorama del desarrollo moderno, estas dos herramientas y la sincronicidad entre ellas son la fuerza impulsora detrás de la comunicación web y la implementación de API de terceros.

En consecuencia, es útil saber qué queremos decir exactamente cuando hablamos de API y SDK. En esta pieza, intentaremos crear una definición inclusiva de ambos conceptos. Daremos un ejemplo de cada uno, explicaremos cómo interactúan entre sí y descubriremos cómo un proveedor de API puede implementar de manera efectiva una o ambas de estas herramientas para mejorar su oferta y la usabilidad del desarrollador final.

Definir: API

API-cogwheel-graphic-nordic-apis

Una API es simplemente una interfaz que permite que el software interactúe con otro software. Esto es parte de su nombre, API, interfaz de programación de aplicaciones, y es fundamental para su funcionalidad. Piense en una API como una piedra de Rosetta, una tableta mediante la cual dos idiomas muy diferentes, dos conjuntos de instrucciones diferentes, se pueden traducir y transferir para un entendimiento mutuo.

Las API vienen en muchas formas y tamaños. El navegador que probablemente usaría un lector para examinar detenidamente el sitio web de las API nórdicas utiliza una variedad de conjuntos de API para convertir los comandos del usuario en funciones utilizables, solicitar datos de los servidores, convertir esos datos en un formato visible para el usuario y validar el rendimiento. de sus solicitudes.

Incluso algo tan simple como copiar y pegar en una computadora utiliza una API. Copiar texto convierte una pulsación de tecla en un comando, los datos se almacenan en la RAM en el portapapeles utilizando una API, los datos se llevan de una aplicación a otra utilizando esa misma API y, finalmente, los datos se procesan al pegar utilizando otra API.

En la World Wide Web, la API adquiere una función ligeramente diferente. Las API web permiten la interacción entre sistemas dispares, a menudo para casos de uso específicos. Por ejemplo, cuando un usuario interactúa en Twitter , está utilizando una API para comentar, almacenar sus datos, seguir a un usuario, eliminar tweets, etc. En última instancia, una API web es simplemente un conjunto de instrucciones, al igual que la API de la computadora personal, pero basada en el espacio web.

Quizás lo más importante es el hecho de que las API permiten la coherencia. En los primeros años de la programación, la computadora era un salvaje oeste de comandos e instrucciones, poco codificados y raramente documentados. Con el advenimiento de la informática moderna, las API han permitido una codificación consistente en entornos estables, lo que permite que las funciones replicables se entreguen de la misma manera cada vez que se envía la solicitud con confiabilidad y previsibilidad.

¿Aún no estás seguro de la estrategia comercial de API Vea nuestro libro electrónico gratuito sobre cómo desarrollar la mentalidad API

Definir: SDK

devkit-SDK-graphic-nordic-apis

SDK son las siglas de “Software Development Kit”, que es una excelente manera de pensarlo: un kit. Piense en armar un modelo de automóvil o avión. Al construir este modelo, se necesita un kit completo de elementos, incluidas las piezas del kit, las herramientas necesarias para montarlos, las instrucciones de montaje, etc.

Un SDK o devkit funciona de la misma manera, proporcionando un conjunto de herramientas, bibliotecas , documentación relevante, ejemplos de código, procesos o guías que permiten a los desarrolladores crear aplicaciones de software en una plataforma específica. Si una API es un conjunto de bloques de construcción que permiten la creación de algo, un SDK es un taller completo , que facilita la creación fuera de los alcances de lo que permitiría una API.

Los SDK son las fuentes de origen de casi todos los programas con los que interactuaría un usuario moderno. Desde el navegador web en el que trabaja hasta los videojuegos que juega al final del día, muchos se crearon por primera vez con un SDK, incluso antes de que se usara una API para comunicarse con otras aplicaciones.

Cuadrados y rectángulos

cuadrado-rectángulo-nórdico-apis-geometría

Parte de la confusión detrás de la diferencia entre API y SDK es el hecho de que, en la mayoría de los casos, un SDK contiene una API. En geometría, "rectángulos" incluye tanto rectángulos como cuadrados, mientras que "cuadrados" incluye solo cuadrados.

Lo mismo ocurre con las API y los SDK. Por definición, un SDK es un kit que incluye instrucciones que permiten a los desarrolladores crear sistemas y desarrollar aplicaciones. Las API, por otro lado, están diseñadas específicamente para un uso expreso, para permitir la comunicación entre aplicaciones.

No debería sorprender entonces que, cuando se utiliza un SDK para crear una aplicación que tiene que comunicarse con otras aplicaciones, incluya una API para esta funcionalidad. A la inversa, una API se utiliza para la comunicación, pero no se puede utilizar únicamente para crear una nueva aplicación.

Otra forma de entender esto es pensar en términos de casas. Las API son líneas telefónicas que permiten la comunicación dentro y fuera de la casa. El SDK es la propia casa y todo su contenido.

Ejemplos

Afortunadamente, tenemos un gran ejemplo de la diferencia entre una API y un SDK en el conjunto de soluciones de Facebook. Debido a que esta suite proporciona herramientas tanto para usuarios activos como para desarrolladores, incluye una API y un SDK, cada uno con diferentes funcionalidades y casos de uso.

API de Facebook

Utilizada internamente y con proveedores de aplicaciones de terceros, la API de Facebook permite la comunicación a través de la amplia plataforma social de Facebook y utiliza las conexiones sociales y los puntos de datos de información de perfil de cada usuario de Facebook para realizar funciones de la aplicación.

Estas funciones incluyen impulsar la actividad a "fuentes de noticias" y "perfiles" en el sitio principal de Facebook, pero también incluyen funciones de aplicaciones de terceros, como registrarse en sitios externos y suscribirse a medios de comunicación. Los datos de páginas, fotos, eventos, amigos y grupos se recopilan, cotejan y utilizan para formar conexiones útiles y significativas que aumentan la extensibilidad del servicio.

La API también permite limitar este intercambio de datos por usuario, lo que permite a los usuarios limitar el contenido de su perfil y el uso del mismo. Esta seguridad integrada permite un uso extensivo de múltiples puntos de datos y recursos mientras mantiene altos niveles de privacidad y seguridad.

Sin embargo, la funcionalidad de esta API se extiende más allá del uso interno. Una de las mayores fortalezas de la API es la conexión con Graph API Explorer . Este servicio permite la observación de datos relacionales entre usuarios, fotos, cuentas, feeds y más. Este tipo de generación analítica es increíblemente poderosa; como hemos dicho anteriormente, las métricas son uno de los activos más poderosos que puede tener un proveedor de API .

GET graph.facebook.com
  /me?
    fields=albums.limit(5){name, photos.limit(2){name, picture, tags.limit(2)}},posts.limit(5)

Aquí vemos una emisión de API de muestra. En esta llamada, la API se utiliza para solicitar la foto de un usuario, la URL que genera la foto y todas las personas etiquetadas en la foto. Si bien este es un uso bastante simple, considere las posibilidades: el gerente de un restaurante o incluso el anfitrión podría usar esta llamada API para generar una lista de usuarios en una sesión de fotos en un compromiso específico, generando una lista de cuentas sociales a las que pueden comunicarse mayor publicidad o promoción. ¡Intenta hacerlo sin la API!

Graph API tampoco es la única API de la ciudad. Facebook también proporciona la API de marketing , diseñada específicamente para permitir que las marcas creen campañas sociales atractivas y efectivas para sus productos.

Esta API no solo muestra cuán poderosa es la plataforma de Facebook, sino cuán poderoso puede ser el diseño de API estructurado correctamente Debido a que la API de marketing impulsa principalmente las campañas publicitarias, el diseño estructural refleja este propósito y se presenta de tal manera que inspire un diseño de campaña adecuado como beneficio secundario.

facebook ad api diagrama de árbol

El beneficio de esta estructura se puede ver en cómo la API de marketing trata con el CPM efectivo optimizado . CPM, o "costo por mil", es un concepto en el que las acciones reciben un valor y la interacción tiene un costo. El anunciante puede optimizar mejor estos costos para priorizar los objetivos de marketing y publicar anuncios de la manera más efectiva y eficiente posible.

use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Values\BillingEvents;
use FacebookAds\Object\Values\OptimizationGoals;

$adset = new AdSet(null, 'act_');
$adset->setData(array(
  AdSetFields::NAME => 'My Ad Set for oCPM',
  AdSetFields::BILLING_EVENT => BillingEvents::IMPRESSIONS,
  AdSetFields::OPTIMIZATION_GOAL => OptimizationGoals::LINK_CLICKS,
  AdSetFields::BID_AMOUNT => 150,
  AdSetFields::CAMPAIGN_ID => ,
  AdSetFields::DAILY_BUDGET => 1000,
  AdSetFields::TARGETING => array(
    'geo_locations' => array(
      'countries' => array(
        'US'
      ),
   ),
  ),
));

$adset->create(array(
  AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));

En este ejemplo, la API de marketing ha creado una campaña por la que se puede realizar una oferta según las restricciones establecidas por los valores del presupuesto de la campaña. Esta puja dinámica lo convierte en un sistema altamente optimizado que captura las impresiones de mayor valor y establece un valor que garantiza que no se exceda la relación de retorno de la inversión a los gastos .

Un sistema de licitación dinámico permite obtener el mejor rendimiento del dólar: este es el poder de una API diseñada adecuadamente, que permite interacciones y manipulaciones complejas más allá de lo que cualquier portal o página interna podría ofrecer por sí solo.

Lea más aquí: El poder de las API publicitarias para crear campañas sociales dirigidas

SDK de Facebook

Podemos ver la principal diferencia entre los SDK y las API en sus funciones expresadas. Si bien las API mencionadas anteriormente están claramente diseñadas para la interacción entre aplicaciones y campañas u otras aplicaciones, los SDK proporcionados por Facebook están claramente diseñados para la creación de estas aplicaciones.

Veamos el SDK de Facebook para iOS . Diseñado específicamente para permitir el desarrollo de aplicaciones de Facebook para iOS, el SDK tiene todas las funciones, lo que permite definir y llamar a una multitud de funciones.

Como ejemplo básico, el siguiente fragmento de código es de la guía de referencia del SDK para iOS:

//  AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>
- (void)applicationDidBecomeActive:(UIApplication *)application {
  [FBSDKAppEvents activateApp];
}

Este ejemplo permite el registro de activaciones de aplicaciones y, por lo tanto, es uno de los ejemplos más básicos posibles para proporcionar. No obstante, se puede ver la diferencia entre una API y un SDK en la estructura básica de las llamadas. Mientras que la API llama a las fuentes y funciones existentes para realizar una acción ya definida, el SDK se utiliza para definir primero esta función y crear una forma de llamar a la fuente y la función.

El SDK de Android es muy similar pero traducido al idioma del sistema operativo Android. Se pueden ver más cambios en los SDK web, como el SDK de JavaScript , que utiliza JavaScript para realizar la misma construcción de funciones básicas que los SDK de iOS y Android.

El SDK son los componentes básicos de la aplicación, mientras que la API es el lenguaje de sus solicitudes. Esta es una descripción adecuada, "bloques de construcción", que se hace muy obvia cuando uno mira lo que contiene un SDK. Bibliotecas a partir de las cuales crear funciones, ejemplos de código para una mayor comprensión y una implementación más sencilla, y referencias para facilitar la vinculación y las explicaciones; sin ninguno de estos, una aplicación o servicio podría ser funcional, pero ciertamente se vería gravemente obstaculizado.

Es de interés clave el hecho de que nuestra analogía aún se mantiene: la API hace referencia a funciones y llamadas existentes, mientras que el SDK llama a la API. Vea este código de ejemplo siguiente de la guía de referencia del SDK:

FB.ui({
  method: 'share_open_graph',
  action_type: 'og.likes',
  action_properties: JSON.stringify({
    object:'https://developers.facebook.com/docs/',
  })
}, function(response){
  // Debug response (optional)
  console.log(response);
});

Este código crea un cuadro de diálogo para compartir que aparece sobre la página de la aplicación cuando se realiza una acción y publica una acción de Open Graph que luego puede vincularse al ecosistema mayor y usarse para generar relaciones complejas y datos métricos.

Relacionado: ¿Cuántos idiomas deberían admitir sus bibliotecas auxiliares?

Manzanas y naranjas

Siendo realistas, la comparación entre API y SDK a menudo es confusa solo por lo mucho que se superponen, un problema que solo se complica con la adición de nuevas metodologías para la organización y segmentación, como los contenedores Docker , que requieren su propia documentación específica de API y SDK. Para simplificar el concepto, recuerde lo siguiente:

  • Los SDK suelen contener API; ninguna API contiene SDK.
  • Los SDK permiten la creación de aplicaciones, ya que una base permite la creación de una casa;
  • Las API permiten el funcionamiento de aplicaciones dentro de los parámetros definidos por los SDK, como las líneas telefónicas de una casa.

Con esta comprensión básica y algunos ejemplos de código clave, la diferencia entre los SDK y las API ahora debería ser obvia.

Publicar un comentario

0 Comentarios