stringtranslate.com

API 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 relacionado con el lado del cliente de una aplicación web (incluido cualquier marco web que se utilice). 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 mediante 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 mediante 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, estos eran más comúnmente en forma de extensiones de navegador nativas , sin embargo, 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 , que está diseñada para ayudar a reemplazar complementos nativos inseguros con extensiones y aplicaciones nativas seguras en un espacio aislado . También lo han hecho portátil empleando un compilador LLVM AOT 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 mediante 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 reciben entradas como un identificador uniforme de recursos (URI) que está diseñado para usarse como una canalización remota con nombre o un tipo de devolución de llamada tal que el servidor actúa como un cliente para eliminar la referencia al URI proporcionado y desencadenar 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. Normalmente el acceso se realiza a través de un URI en el que se publican las solicitudes HTTP y del que se espera la respuesta. Las API web pueden ser públicas o privadas, la última de las cuales 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 la ubicación de un recurso cambia (y con ella el punto final), el software escrito anteriormente fallará, ya que el recurso requerido ya no se podrá encontrar en el mismo lugar. Como los proveedores de API todavía quieren actualizar sus API web, muchos han introducido un sistema de control de versiones en el URI que apunta a un punto final.

Recursos versus servicios

Las API web 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 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 a través de HTTP . Además, las API web basadas en SOAP utilizan validación XML para garantizar la integridad estructural del mensaje, aprovechando los esquemas XML proporcionados 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 exista un nivel suficiente de documentación. Un proveedor de API que no sólo proporciona documentación, sino que también enlaza con 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 constantemente en los últimos años, a medida que las empresas se dan cuenta de las oportunidades de crecimiento asociadas con el funcionamiento de una plataforma abierta con la que cualquier desarrollador puede interactuar. ProgrammableWeb rastrea más de 24000 API web que estaban disponibles en 2022, frente a 105 en 2005.

Las API web se han vuelto omnipresentes. Hay algunas aplicaciones/servicios de software importantes que no ofrecen 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, vídeos de YouTube, etc. De hecho, existen empresas de gran éxito, como Disqus , cuyo principal servicio es proporcionar herramientas integrables. , como un sistema de comentarios rico en funciones. [9] Cualquier sitio web de los 100 sitios web TOP clasificados por Alexa en Internet utiliza API y/o proporciona sus propias API, lo cual es un indicador muy distintivo de la prodigiosa escala e impacto de las API web en su conjunto. [10]

A medida que ha aumentado el número de API web disponibles, se han desarrollado herramientas de código abierto para proporcionar búsquedas y descubrimientos 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 atender 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 ahora están abriendo el acceso a estos datos. Las interfaces a través de las cuales normalmente se puede acceder a estos datos son las API web. Las API web permiten que cualquier desarrollador acceda a datos como "presupuesto, obras públicas, delitos, datos legales y otros datos de agencias" [14] de manera conveniente.

Ejemplo

Un ejemplo de una API web popular es la API Imagen astronómica del día 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 , y 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 un dato del usuario, una clave API , y acepta varios otros datos opcionales. Esta información se conoce como parámetros . Los parámetros de esta API están escritos en un formato conocido como cadena de consulta , que está separada por un signo de interrogación ( ?) del punto final. Un signo comercial ( &) separa los parámetros de 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. La primera 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

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

{ "fecha" : "1996-12-03" , "explicación" : "Como una mariposa, una estrella enana blanca comienza su vida desprendiéndose de un capullo que encerraba su yo anterior. Sin embargo, en esta analogía , ¡el Sol sería una oruga y la capa de gas expulsada se convertiría en la más bonita de todas!\r El capullo de arriba, la nebulosa planetaria\r designada NGC 2440, contiene una de las estrellas enanas blancas más calientes conocidas.\r La enana blanca se puede ver como el punto brillante cerca del centro de la fotografía. Nuestro Sol eventualmente se convertirá en una \"mariposa enana blanca\", pero no hasta dentro de 5 mil millones de años. La imagen en falso color de arriba recientemente se hizo pública domain\r y fue postprocesado 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 devolución de 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ía esta foto:

Aunque un usuario final puede llamar a esta API con un navegador web (como en este ejemplo), está diseñada para que el software o los programadores de computadoras la llamen automáticamente mientras escriben software. JSON está destinado a ser analizado por un programa informático, que extraería la URL de la fotografía y los demás metadatos. La foto resultante podría incrustarse en un sitio web, enviarse automáticamente mediante mensaje de texto o usarse para cualquier otro propósito previsto por un desarrollador de software.

Ver también

Referencias

  1. ^ "WebAPI de Mozilla quiere reemplazar las aplicaciones nativas con HTML5 | Webmonkey | Wired.com". 2013-12-05. Archivado desde el original el 5 de diciembre de 2013 . Consultado el 13 de enero de 2022 .
  2. ^ Wiki de Mozilla WebAPI
  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. ^ "Panel de control combinado". 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 combinaciones de servicios". Computación de Internet IEEE . 12 (5): 32–43. doi :10.1109/MIC.2008.92. S2CID  14949046.
  6. ^ "Se avecinan 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 encantan a los desarrolladores (PDF) . apigeo. pag. 11.
  8. ^ "Directorio de API". Web programable . 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. ^ "API.json". apisjson.org . Consultado el 14 de marzo de 2016 .
  12. ^ "APIs.io: el motor de búsqueda API". apis.io. _ Consultado el 14 de marzo de 2016 .Así que hazlo claramente comprensible y comparte tus conocimientos.
  13. ^ "Diez lecciones aprendidas de la API de Netflix - OSCON 2014, diapositiva 73". 2014-07-24. {{cite journal}}: Citar diario requiere |journal=( ayuda )
  14. ^ "Tendencias tecnológicas 2015, economía API". Prensa de la Universidad de Deloitte . Consultado el 3 de noviembre de 2015 .
  15. ^ "Imagen astronómica del día". API de la NASA .

Otras lecturas