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
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.
Definir: SDK
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
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.
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.
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.
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.
0 Comentarios
Dejanos tu comentario para seguir mejorando!