Las APIs del navegador son herramientas integradas que permiten a los desarrolladores interactuar con el entorno del navegador y realizar tareas complejas mediante JavaScript. La API de Geolocalización, por ejemplo, facilita la obtención de datos de ubicación para mostrar en mapas.
Cada petición realizada esta acompañada por un estado, este estado es representado por un entero.
401: acceso no autorizado
404: página no encontrada
500: error de servidor
Mayor tiempo en desarrollo debido que hay que plantear y estandarizar las respuestas de nuestra API para que se tornen amigables para quien la consume.
Curva de aprendizaje incrementada, ya que como muchos estan acostumbrados a trabajar enviado HTML por las peticiones AJAX, podría resultar un poco tedioso trabajar con JSON puro, entre ellas, entender el uso del framework que implemente la API o tener claro en el concepto si queremos desarrollar un framework desde cero.
Separación entre el cliente y el servidor
Nuestros proyectos se vuelven autónomos, por lo tanto no interesa si dicha tecnología es compatible con la otra ya que usaremos como un medio de comunicación JSON.
No importa la tecnología
Si eres PHP, .NET, Java, Ruby, etc da igual, al final solo necesitas saber como consumir/responder al servicio.
Escalabilidad, Flexibilidad
Realiza los cambios que quieras dentro de tu Api, lo que interesa es que se respete el mismo mensaje o respuesta que le brindas al cliente para mantener la misma lógica.
¿Mejora de recursos consumidos por el servidor?
REST no debe usar sesiones, por lo tanto disponemos de más memoria RAM.
Lo correcto es trabajar con formatos estandarizados como JSON no haremos uso de HTML para responder al cliente. En este caso ganamos velocidad.
Se dice que hoy en día debemos pensar orientado al servicio. Yo recomendaría trabajar directamente con una REST Api bajo estas situaciones.
Si vamos a trabajar una aplicación del tipo SPA, si o si debemos crear una REST Api. Un framework recomendado puede ser AngularJS, EmberJS, backbone entre otros.
Si es una Web comercial y vas a exponer recursos al público, es muy recomendable crear una REST Api.
Si tu sistema no solo va a ser accedido desde una PC, tambíen deberíamos pensar en crear una REST Api, ya que permite crear escalabilidad.
En resumen, crear una REST Api es una manera muy profesional de desacoplar tu sistema de la capa de persistencia.
Es un servicio que disponemos al público usando REST. REST es el concepto, RESTFul es la implementación y al crear un RESTFul creamos una API, la cual una API es un conjunto de funciones o procedimientos para que sea utilizado por otro software.
Ejm: la Api de Google Maps, Youtube, Facebook, etc ..
CÓDIGOS DE ESTADO HTTP
PUNTOS EN CONTRA
PUNTOS A FAVOR
¿BAJO QUÉ CIRTUSTANCIAS DEBERÍAMOS IMPLEMENTAR UN SERVICIO RESTFUL?
¿QUÉ ES RESTFUL?
DELETE (delete): cuando queremos eliminar un registro. Borrar un usuario X de nuestra base de datos.
api.anexsoft.com/users
PUT (update): cuando queremos actualizar un registro. Actualizar la información de un usuario X.
api.anexsoft.com/users
GET (read): es usado para modo lectura, por ejemplo: cuando queremos listar a todos los usuarios de nuestra base de datos. Los parámetros son enviados por la URL.
api.anexsoft.com/users
POST (create): cuando mandamos información para insertar por ejemplo un registro en la base de datos. La información es enviado en el cuerpo de la petición, es decir que los datos no son visibles al usuario.
api.anexsoft.com/users
Cada petición realizada a nuestra API responde a un verbo, y dicho verbo a una operación en común. Mediante los métodos HTTP hacemos las peticiones, lo común es GET y POST, PUT y DELETE.
PETICIONES
Se implementan RECURSOS para generar comunicación, es decir crea URIs únicas que permiten al cliente entender y utilizar lo que está exponiendo. Por ejemplo:
api.anexsoft.com/users
api.anexsoft.com/users/1405
RECURSOS
Es decir que cada petición que reciba nuestra API debe perecer. Por ejemplo, no podemos RECORDAR un usuario logeado en el API usando una sesión, esto es un PECADO ya que agotaría la memoria RAM de nuestro servidor (10 mil usuarios conectados a nuestra API). Lo que correcto es pasar un TOKEN para cada petición realizada al API, y el API deberá validar si esta es correcta o no (por ahora no vamos hablar de técnicas para generar el TOKEN, pero lo más común es usar una COOKIE)
STATELESS
Representational State Transfer" o traducido a "Transferencia de presentación de estado" es lo que se domina a REST. ¿Y eso es?, una técnica de arquitectura de software usada para construir APIs que permitan comunicar a nuestro servidor con sus clientes usando el protocolo HTTP mediante URIs lo suficientemente inteligentes para poder satisfacer la necesidad del cliente.
REST
Body
Proporciona métodos relacionados con el contenido de la respuesta/solicitud, lo que le permite declarar cuál es su tipo y cómo debe manejarse.
Mixin
Response
Representa la respuesta a una solicitud.
Request
Representa una solicitud de recursos.
Headers (en-US)
Representa los encabezados de la respuesta/solicitud, lo que le permite consultar y tomar diferentes acciones en función de los resultados.
GlobalFetch
Contiene el método fetch() utilizado para obtener o inicializar un recurso.
Los navegadores han empezado a añadir soporte experimental para las interfaces AbortController (en-US) y AbortSignal (en-US) (Conocidas también como La API Abort), las cuales permiten que operaciones como Fetch y XHR puedan ser abortadas si no han terminado todavía. Visita las páginas de las interfaces para más detalles.
Fetch ofrece una definición genérica de los objetos Request y Response . El método fetch toma un argumento obligatorio, la ruta de acceso al recurso que desea recuperar. Devuelve una Promise que resuelve en Response a esa petición, sea o no correcta.
Una vez que Response es recuperada, hay varios métodos disponibles para definir cuál es el contenido del cuerpo y como se debe manejar . Puede crear una solicitud y respuesta directamente a con los constructores Request y Response, pero no es recomendable hacerlo directamente.
La API Fetch proporciona una interfaz para recuperar recursos (incluso a través de la red). Resultará familiar a cualquiera que haya usado XMLHttpRequest, pero la nueva API ofrece un conjunto de características más potente y flexible.
Fetch API
Interfaces o metodos
Abortar una petición
Concepto y uso
Usan eventos para cambiar su estado, Algunas APIs web no contienen eventos, pero algunas otras sí contienen un buen número de ellos. Las propiedades para manejarlos, que nos permiten ejecutar funciones cuando los eventos se producen, generalmente se listan en nuestro material de referencia en secciones de "Manejadores de Eventos" separadas.
La API del Modelo de Objetos del Navegador (DOM) tiene un punto de acceso todavía más simple — sus características las podemos encontrar colgando del objeto Document, o una instancia de un elemento HTML que queremos modificar de alguna forma
Las APIs interactúan con tu código usando uno o más Objetos JavaScript, que sirven como contenedores para los datos que usa la API (contenidos en las propiedades del objeto), y la funcionalidad que la API provee (contenida en los métodos del objeto).
La Twilio API, provee de un framework para crear la funcionalidad de llamadas y videollamadas en tus aplicaciones, enviar SMS o MMS y más.
La YouTube API, te permite integrar videos de Youtube en tu sitio, buscar en Youtube, construir listas de reproducción y más.
El conjunto de APIs de Facebook te permite usar partes del ecosistema de facebook para mejorar tu aplicación, por ejemplo aportando la posiblidad de identificación mediante el login de Facebook, aceptar pagos en la aplicación, desplegar campañas de anuncios para un target concreto, etc.
La API de Google Maps permite hacer todo tipo de cosas con mapas en tus páginas web (incluso hace funcionar Google Maps). Actualmente, existe todo un conjunto de apis que te permiten realizar una gran variedad de tareas, como se puede ver en Google Maps API Picker
La API de Twitter, que te permite hacer cosas como mostrar tus ultimos tweets en tu sitio web.
APIs populares de terceros
->APIs para manipular documentos cargados en el navegador. El ejemplo más obvio es la API DOM (Document Object Model), que permite manipular HTML y CSS — crear, eliminar y modificar HTML, aplicar estilos dinámicos a una página, etc. ->APIs que obtienen datos del servidor, comunmente usadas para actualizar pequeñas secciones de una página web. Este aparente pequeño detalle tiene un gran impacto en el performance y en el comportamiento de los sitios. ->Las APIs para dibujar y manipular graficos ya son soportadas por la mayoría de navegadores. Las más populares son Canvas y WebGL, que permiten actualizar la información de cada uno de los píxeles contenidos en un
APIs de navegador más comunes
-> JavaScript — Un lenguaje de scripts de alto nivel incorporado en los navegadores que permite implementar interactividad en páginas web / apps. Ten en cuenta que JavaScript también está disponible en otros entornos de programación, como Node.
->APIs de navegador — Construcciones integradas en el navegador creadas con el lenguaje JavaScript y que permiten implementar funcionalidad mucho más fácilmente.
->APIs de terceros — Construcciones integradas en plataformas de terceros (por ejemplo Twitter, Facebook) que permiten usar algunas de las funcionalidades de esa plataforma en tus páginas web (como por ejemplo mostrar tus últimos Tweets en tu página web).
->Librerías JavaScript — Por lo general uno o más archivos JavaScript que contienen funciones personalizadas (en-US) que puedes añadir a tu página web para acelerar o habilitar la escritura de funcionalidades comunes. Por ejemplo jQuery, Mootools y React.
->Frameworks JavaScript — El siguiente paso a las librerías, los frameworks JavaScript (como Angular y Ember) suelen ser paquetes de HTML, CSS, JavaScript y otras tecnologías que se instalan y luego se usan para escribir una aplicación web completa desde cero. La diferencia clave entre una librería y un framework es la "Inversión del control". Cuando se llama a un método desde una librería, el desarrollador tiene el control. Con un framework el control se invierte: el framework llama al código del desarrollador.
APIs en JavaScript del lado cliente
JavaScript del lado cliente, particularmente, tiene muchas APIs disponibles — estas no son parte del lenguaje en sí, sino que están construidas sobre el núcleo de este lenguaje de programación, proporcionándote superpoderes adicionales para usar en tu código. Por lo general, se dividen en dos categorías:
Las APIs de terceros no están incluídas por defecto en el navegador, y por lo general es necesario obtener el código e información desde algún lugar de la Web. Por ejemplo, la API de Twitter permite hacer cosas como mostrar tus últimos tweets en un sitio web.
Las APIs de navegador: Están integradas en tu navegador web y pueden exponer datos del navegador y del entorno informático circundante y hacer cosas complejas y útiles con él. Por ejemplo, la API de Geolocalización proporciona algunas construcciones simples de JavaScript para obtener datos de ubicación con los que, por ejemplo, trazar tu ubicación en un mapa de Google.
APIs WEB
¿Cómo funcionan las APIs?
Relacion entre JavaScript, APIs, y otras herramientas de JavaScript
Que es : Las Interfaces de Programación de Aplicaciones (APIs por sus siglas en inglés) son construcciones disponibles en los lenguajes de programación que permiten a los desarrolladores crear funcionalidades complejas de una manera simple. Estas abstraen el código más complejo para proveer una sintaxis más fácil de usar en su lugar.