API web

Interfaz de programación de aplicaciones basada en HTTP en la web
Captura de pantalla de la documentación de la API web escrita por la NASA

Una API web es una interfaz de programación de aplicaciones (API) para un servidor web o un navegador web . Como concepto de desarrollo web , puede estar relacionada con el lado del cliente de una aplicación web (incluidos los marcos web que se utilicen). Una API web del lado del servidor consta de uno o más puntos finales expuestos públicamente a un sistema de mensajes de solicitud-respuesta definido , expresados ​​normalmente en JSON o XML por medio de un servidor web basado en HTTP . Una API de servidor (SAPI) no se considera una API web del lado del servidor, a menos que sea accesible públicamente por una aplicación web remota.

Lado del cliente

Una API web del lado del cliente es una interfaz programática para ampliar la funcionalidad dentro de un navegador web u otro cliente HTTP. Originalmente, estas se presentaban comúnmente en forma de extensiones nativas del navegador, pero la mayoría de las más nuevas apuntan a enlaces de JavaScript estandarizados .

La Fundación Mozilla creó su especificación WebAPI, que está diseñada para ayudar a reemplazar las aplicaciones móviles nativas con aplicaciones HTML5 . [1] [2]

Google creó su arquitectura Native Client , diseñada para ayudar a reemplazar complementos nativos inseguros por extensiones y aplicaciones seguras nativas en entornos aislados . También la han hecho portátil empleando un compilador AOT LLVM modificado .

Lado del servidor

Una API web del lado del servidor consta de uno o más puntos finales expuestos públicamente a un sistema de mensajes de solicitud-respuesta definido , generalmente expresado en JSON o XML . La API web se expone más comúnmente por medio de un servidor web basado en HTTP .

Los mashups son aplicaciones web que combinan el uso de múltiples API web del lado del servidor. [3] [4] [5] Los webhooks son API web del lado del servidor que toman la entrada como un Identificador uniforme de recursos (URI) que está diseñado para usarse como una tubería con nombre remota o un tipo de devolución de llamada de modo que el servidor actúe como un cliente para desreferenciar el URI proporcionado y activar un evento en otro servidor que maneja este evento, proporcionando así un tipo de IPC de igual a igual.

Puntos finales

Los puntos finales son aspectos importantes de la interacción con las API web del lado del servidor, ya que especifican dónde se encuentran los recursos a los que puede acceder el software de terceros. Por lo general, el acceso se realiza a través de una URL a la que se envían las solicitudes HTTP y desde la que se espera la respuesta. Las API web pueden ser públicas o privadas, y la última de ellas requiere un token de acceso . [6]

Los puntos finales deben ser estáticos, de lo contrario no se puede garantizar el correcto funcionamiento del software que interactúa con ellos. Si cambia la ubicación de un recurso (y con ello el punto final), el software escrito anteriormente dejará de funcionar, ya que el recurso requerido ya no se puede encontrar en el mismo lugar. Como los proveedores de API aún quieren actualizar sus API web, muchos han introducido un sistema de control de versiones en la URI que apunta a un punto final.

Recursos versus servicios

Las API web de la Web 2.0 suelen utilizar interacciones basadas en máquinas, como REST y SOAP . Las API web RESTful utilizan métodos HTTP para acceder a los recursos a través de parámetros codificados en URL y utilizan JSON o XML para transmitir datos. Por el contrario, los protocolos SOAP están estandarizados por el W3C y exigen el uso de XML como formato de carga útil, normalmente sobre HTTP . Además, las API web basadas en SOAP utilizan la validación XML para garantizar la integridad estructural de los mensajes, aprovechando los esquemas XML provistos con documentos WSDL . Un documento WSDL define con precisión los mensajes XML y los enlaces de transporte de un servicio web .

Documentación

Las API web del lado del servidor son interfaces para que el mundo exterior interactúe con la lógica empresarial. Para muchas empresas, esta lógica empresarial interna y la propiedad intelectual asociada a ella son lo que las distingue de otras empresas y, potencialmente, lo que les da una ventaja competitiva. No quieren que esta información quede expuesta. Sin embargo, para proporcionar una API web de alta calidad, es necesario que haya un nivel suficiente de documentación. Un proveedor de API que no solo proporciona documentación, sino que también incluye enlaces a ella en sus mensajes de error es Twilio . [7]

Sin embargo, ahora existen directorios de API web del lado del servidor documentadas y populares. [8]

Crecimiento e impacto

La cantidad de API web disponibles ha crecido de manera constante en los últimos años, a medida que las empresas se dan cuenta de las oportunidades de crecimiento asociadas con la ejecución de una plataforma abierta con la que cualquier desarrollador puede interactuar. ProgrammableWeb realiza un seguimiento de más de 24 000 API web que estaban disponibles en 2022, en comparación con las 105 de 2005.

Las API web se han vuelto omnipresentes. Hay pocas aplicaciones/servicios de software importantes que no ofrezcan algún tipo de API web. Una de las formas más comunes de interactuar con estas API web es mediante la incorporación de recursos externos, como tweets, comentarios de Facebook, videos de YouTube, etc. De hecho, hay empresas muy exitosas, como Disqus , cuyo servicio principal es proporcionar herramientas integrables, como un sistema de comentarios rico en funciones. [9] Cualquier sitio web de los 100 mejores sitios web de Internet clasificados por Alexa utiliza API y/o proporciona sus propias API, lo que es un indicador muy claro de la escala prodigiosa y el impacto de las API web en su conjunto. [10]

A medida que ha aumentado la cantidad de API web disponibles, se han desarrollado herramientas de código abierto para proporcionar una búsqueda y un descubrimiento más sofisticados. APIs.json proporciona una descripción legible por máquina de una API y sus operaciones, y el proyecto relacionado APIs.io ofrece una lista pública de API con capacidad de búsqueda basada en el formato de metadatos APIs.json. [11] [12]

Negocio

Comercial

Muchas empresas y organizaciones dependen en gran medida de su infraestructura de API web para brindar servicios a sus principales clientes comerciales. En 2014, Netflix recibió alrededor de 5 mil millones de solicitudes de API, la mayoría de ellas dentro de su API privada. [13]

Gubernamental

Muchos gobiernos recopilan una gran cantidad de datos y algunos gobiernos están permitiendo el acceso a ellos. Las interfaces a través de las cuales se puede acceder a estos datos son las API web. Las API web permiten que cualquier desarrollador pueda acceder de forma cómoda a datos como "presupuesto, obras públicas, delitos, asuntos legales y otros datos de agencias" [14] .

Ejemplo

Un ejemplo de una API web popular es la API Astronomy Picture of the Day , operada por la agencia espacial estadounidense NASA . Es una API del lado del servidor que se utiliza para recuperar fotografías del espacio u otras imágenes de interés para los astrónomos , así como metadatos sobre las imágenes.

Según la documentación de la API, [15] la API tiene un punto final:

https://api.nasa.gov/planetary/apod

La documentación indica que este punto final acepta solicitudes GET . Requiere una pieza de información del usuario, una clave API , y acepta varias otras piezas de información opcionales. Dichas piezas de información se conocen como parámetros . Los parámetros para esta API se escriben en un formato conocido como cadena de consulta , que está separada por un carácter de signo de interrogación? ( ) desde el punto final. Un ampersand ( &) separa los parámetros en la cadena de consulta entre sí. Juntos, el punto final y la cadena de consulta forman una URL que determina cómo responderá la API. Esta URL también se conoce como consulta o llamada API .

En el siguiente ejemplo, se transmiten (o pasan ) dos parámetros a la API a través de la cadena de consulta. El primero es la clave API requerida y el segundo es un parámetro opcional: la fecha de la fotografía solicitada.

https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=1996-12-03

Al visitar la URL anterior en un navegador web, se iniciará una solicitud GET, que llamará a la API y mostrará al usuario un resultado, conocido como valor de retorno o como return . Esta API devuelve JSON , un tipo de formato de datos destinado a ser comprendido por computadoras, pero que también es bastante fácil de leer para un humano. En este caso, el JSON contiene información sobre una fotografía de una estrella enana blanca :

{ "date" : "1996-12-03" , "explanation" : "Como una mariposa, una estrella enana blanca comienza su vida desprendiéndose de un capullo que la envolvía. En esta analogía, sin embargo, el Sol sería una oruga y la capa de gas expulsada se convertiría en la más bonita de todas. El capullo de arriba, la nebulosa planetaria designada NGC 2440, contiene una de las estrellas enanas blancas más calientes que se conocen. La enana blanca puede verse como el punto brillante cerca del centro de la foto. Nuestro Sol acabará convirtiéndose en una "mariposa enana blanca", pero no hasta dentro de 5 mil millones de años. La imagen en falso color de arriba entró recientemente en el dominio público y fue procesada posteriormente por F. Hamilton.\r" , "hdurl" : "https://apod.nasa.gov/apod/image/9612/ngc2440_hst2_big.jpg" , "media_type" : "image" , "service_version" : "v1" , "title" : "Capullo de una nueva enana blanca\r\nCrédito:" , "url" : "https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg" }       

La API anterior se ha reformateado para que los nombres de los elementos de datos JSON, conocidos como claves , aparezcan al comienzo de cada línea. La última de estas claves, denominada url, indica una URL que apunta a una fotografía:

https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg

Siguiendo la URL anterior, un usuario de un navegador web verá esta foto:

Capullo de una nueva enana blanca

Aunque un usuario final puede llamar a esta API con un navegador web (como en este ejemplo), está pensada para que la llame automáticamente un software o un programador informático mientras escribe el software. El JSON está pensado para que lo analice un programa informático, que extraerá la URL de la fotografía y los demás metadatos. La foto resultante podría incrustarse en un sitio web, enviarse automáticamente por mensaje de texto o utilizarse para cualquier otro fin previsto por un desarrollador de software.

Véase también

Referencias

  1. ^ "La WebAPI de Mozilla quiere reemplazar las aplicaciones nativas con HTML5 | Webmonkey | Wired.com". 5 de diciembre de 2013. Archivado desde el original el 5 de diciembre de 2013. Consultado el 13 de enero de 2022 .
  2. ^ Wiki de la API web de Mozilla
  3. ^ "¿Qué es mash-up? - Definición de WhatIs.com". WhatIs.com . Archivado desde el original el 24 de abril de 2015. Consultado el 4 de noviembre de 2015 .
  4. ^ "Mashup Dashboard". ProgrammableWeb.com. 2009. Archivado desde el original el 7 de mayo de 2021. Consultado el 29 de mayo de 2021 .
  5. ^ Maximilien, E. Michael; Ranabahu, Ajith; Gomadam, Karthik (septiembre-octubre de 2008). "Una plataforma en línea para API web y mashups de servicios". IEEE Internet Computing . 12 (5): 32–43. doi :10.1109/MIC.2008.92. S2CID  14949046.
  6. ^ "Cambios en la versión 1.1 de la API de Twitter".
  7. ^ Mulloy, Brian. Diseño de API web: creación de interfaces que los desarrolladores adoran (PDF) . apigee. pág. 11.
  8. ^ "Directorio API". ProgrammableWeb . Consultado el 3 de noviembre de 2015 .
  9. ^ "Disqus – La comunidad de comunidades de la Web". Disqus . Consultado el 4 de noviembre de 2015 .
  10. ^ "Los 500 mejores sitios globales de Alexa". www.alexa.com . Consultado el 4 de noviembre de 2015 .
  11. ^ "APIs.json". apisjson.org . Consultado el 14 de marzo de 2016 .
  12. ^ "APIs.io - el motor de búsqueda de API". apis.io . Consultado el 14 de marzo de 2016 .Así que hazlo claramente comprensible y comparte tu conocimiento.
  13. ^ "Las 10 lecciones principales aprendidas de la API de Netflix - OSCON 2014, diapositiva 73". 24 de julio de 2014. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  14. ^ "Tendencias tecnológicas 2015, economía API". Deloitte University Press . Consultado el 3 de noviembre de 2015 .
  15. ^ "Imagen astronómica del día". API de la NASA .

Lectura adicional

  • Jacobson, Daniel; Woods, Dan; Brail, Greg (noviembre de 2011). APIs a strategy guide (Guía de estrategia de las API ). Sebastopol, California: O'Reilly Media . ISBN. 978-1-4493-0892-6.
  • Mulloy, Brian. Diseño de API web: creación de interfaces que los desarrolladores adoran (PDF) . Apigee.
  • "API web". Google Chrome .
  • "Referencia de API web: referencia de tecnología web". Red de desarrolladores de Mozilla . 20 de febrero de 2023.
  • "Demostración de API web". Demostración de API web .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Web_API&oldid=1248566942"