articulo

Las tecnologías y el desarrollo de aplicaciones web.

tecnología y spider web
Photo by Pixabay on Pexels.com

Para la diversas tecnología que existe para el desarrollo de aplicaciones web, han surgido numerosas tecnologías que permiten llevar a buen término un proyecto. Se puede iniciar la clasificación por el tipo de tecnología que se puede usar en el servidor.

Tipos de servidores web

  • Apache: Pionero en el tema de peticiones web, tiene sus orígenes haya por 1989, En marzo de 1989 Tim Berners Lee, un científico inglés que trabaja en el CERN (Suiza) propone un nueva forma de gestionar la ingente cantidad de información de los proyectos del CERN. El servidor HTTP Apache es de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1, y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y “civilizasen” el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor “parcheado”).
  • Nginx: pronunciado en inglés como «engine-ex», es un famoso software de servidor web de código abierto. En su versión inicial, funcionaba en servidores web HTTP. Sin embargo, hoy en día también sirve como proxy inverso, balanceador de carga HTTP y proxy de correo electrónico para IMAP, POP3 y SMTP.
  • Cherokee: es un servidor web que desarrolla una nueva implementación de este tipo de aplicación, con una serie de características y funcionalidades concretas, basado principalmente en los tres puntos siguientes: velocidad, flexibilidad y capacidad de ser empotrado.  implementa una librería para dotar a toda clase de aplicaciones de servicios web de una forma fácil y rápida. En su desarrollo se realiza un esfuerzo especial en mantener un core reducido -de forma tal que pueda utilizarse en sistemas empotrados- y efectuar todas las funcionalidades como módulos cargables en tiempo de ejecución. Igualmente, la alta eficiencia y una arquitectura lo suficientemente flexible como para poder escalar a servidores SMP son características de Cherokee que pueden suponer un paso adelante respecto a los servidores web libres existentes.
  • LiteSpeed: Es un servidor moderno, robusto y eficiente diseñado para soportar cargas de trabajo mucho mayores y con el correr de los años a ganado una merecida reputación en base a calidad, solidez, confiabilidad y buen rendimiento incluso hasta alcanzar una cuota del 5% del mercado de servidores web. Usa LiteSpeed Server API que proporciona soporte para PHP, Ruby y Python que permite procesar el código de forma más segura, rápida y eficiente. Soportar el protocolo HTTP/2 que si bien no modifica la semántica del html  incluye incontables mejoras como tratarse de uso de una única conexión, la multiplexacion que permite enviar y recibir contenido simultáneamente, incorpora la compresión de cabeceras o headers y el servicio server push. que permite adelantar el envió datos al cliente antes de que lo solicite.
  • IIS: Son las iniciales de Internet Information Services y si bien es más conocido como servidor web en realidad son un conjuntos de servicios que transforman un sistema Microsoft Windows en un servidor capaz de ofrecer servicios Web, FTP y SMTP entre otros.Inicialmente lanzado como un grupo de servicios orientado a internet para Windows NT 3.51 en 1995, recién al año siguiente vio la luz Active Server Pages (ASP) para Windows NT 4.0 con IIS 3.0. Por muchos años IIS fue un CD-ROM separado del Sistema Operativo denominado Option Pack, recién con Windows 2000 se incorporó al instalador del sistema como un paquete más instalable variando las limitaciones dependiendo de la versión de Windows.
  • Sun Java System Web Server: es un servidor seguro, fiable y fácil de usar, diseñado para medianos y grandes sitios. Disponible en la mayoría de los principales sistemas operativos, Java System Web Server proporciona a las organizaciones una única plataforma de despliegue de servicios Web, Java Server Pages (JSP), las tecnologías Java Servlet, NSAPI y CGI. También ofrece una función de revertir capacidades HTTP proxy para proporcionar un HTTP altamente escalable front-end para los servidores de aplicaciones u otros servidores de origen HTTP. Su interfaz FastCGI proporciona una plataforma estable y escalable para las tecnologías de tercera parte de scripting como PHP, Ruby on Rails, Perl, Python, y más.

Tecnología por el tipo de lenguaje

  • CGI: Common Gateway Interface; la primera técnica utilizada para que el contenido de las páginas web se generará de manera dinámica, es común encontrar en los diferentes servidores web el modulo que soporta la ejecución de CGI’s. De manera resumida se puede decir que el CGI es un mecanismo de comunicación entre el servidor web y una aplicación externa, esta aplicación puede estar desarrollada en casi cualquier lenguaje, este solo debe cumplir la condición de ser soportado por el servidor http, es común encontrar que la mayoría de las aplicaciones CGI’s se encuentren desarrolladas con el lenguaje PERL. Este mecanismo tiene deficiencias que evita su uso a gran escala, la más conocida es en cuanto a rendimiento, ya que por cada petición que se realice en el servidor se crea un nuevo proceso, lo cual tiene un costo muy alto en lo que a recursos del sistema se refiere.
  • Fast-CGI: Solución similar al CGI, solo que propone la creación de un solo proceso persistente por cada programa FastCGI en lugar de por cada solicitud del cliente. Es una solución viable pero también tiene inconvenientes de proliferación de procesos en el caso de peticiones concurrentes. Brinda una nueva forma de trabajo, orientada al trabajo del diseñador web, quien no necesariamente conoce de lenguajes de programación. Esto consiste en insertar pequeños fragmentos de lógica de programación en la estructura HTML de la página, al contrario de lo que se hacia en los CGI’s, que era en el lenguaje de programación utilizar sentencias de impresión para generar salidas HTML.
  • Java Server Pages: JSP provee a los desarrolladores de web de un entorno para crear contenidos dinámicos en el servidor usando plantillas HTML y XML (eXtensible Markup Language) en código Java, encapsulando la lógica que genera el contenido de las páginas. Cuando se ejecuta una página JSP es traducida a una clase de Java, la cual es compilada para obtener un servlet. Esta fase de traducción y compilación ocurre solamente cuando el archivo JSP es llamado la primera vez, o después de que ocurran cambios.
  • eXtensible Markup Language: de la familia XML es un conjunto de especificaciones que conforman el estándar que define las características de un mecanismo independiente de plataformas desarrollado para compartir datos. Es como un formato de transferencia de datos multiplataforma. Ha sido diseñado de tal manera que sea fácil de implementar. No ha nacido sólo para su aplicación en Internet, sino que se propone como lenguaje de bajo nivel (a nivel de aplicación, no de programación) para intercambio de información estructurada entre diferentes plataformas. Hace uso de etiquetas (únicamente para delimitar datos) y atributos, y deja la interpretación de los datos a la aplicación que los utiliza. Es un metalenguaje. El conjunto de reglas o convenciones que impone la especificación XML permite diseñar formatos de texto para los datos estructurados, se almacenen de manera no ambigua, independiente de la plataforma y que en el momento de la recuperación se pueda verificar si la estructura es la correcta. Para comprobar que los documentos estén bien formados se utiliza un DTD (Document Type Definition). Se trata de una definición de los elementos que pueden incluirse en el documento XML, la relación entre ellos, sus atributos, posibles valores.
  • JSON: JavaScript Object Notation (JSON) es una representación textual sin patrones de datos estructurados basados en listas ordenadas. Aunque JSON se deriva de JavaScript, es soportado de forma nativa o a través de librerías en la mayoría de los lenguajes de programación. JSON se utiliza comúnmente, pero no exclusivamente, para intercambiar información entre clientes y servidores web.
  • HTML: (Lenguaje de Marcas de Hipertexto, del inglés HyperText Markup Language) es el componente más básico de la Web. Define el significado y la estructura del contenido web. Además de HTML, generalmente se utilizan otras tecnologías para describir la apariencia/presentación de una página web (CSS) o la funcionalidad/comportamiento (JavaScript).
  • CSS: Hojas de Estilo en Cascada (del inglés Cascading Style Sheets) o CSS es el lenguaje de estilos utilizado para describir la presentación de documentos HTML o XML (en-US) (incluyendo varios lenguajes basados en XML como SVG, MathML o XHTML). CSS describe como debe ser renderizado el elemento estructurado en la pantalla, en papel, en el habla o en otros medios. Es uno de los lenguajes base de la Open Web
  • SVG: Gráficos vectoriales escalables (SVG) es un lenguaje de marcado XML (en-US) para describir gráficos vectoriales en dos dimensiones. Básicamente, es a los gráficos lo que HTML es al texto. SVG es un estándar Web abierto basado en texto. Está expresamente diseñado para trabajar con otros estándares web como CSS, DOM (en-US), y SMIL (en-US).
  • MathML:Lenguaje de Marcado Matemático (MathML) es un lenguaje de marcado XML para describir expresiones matemáticas capturando tanto su contenido como su estructura.
  • JavaScript (JS) es un lenguaje de programación ligero, interpretado, o compilado justo-a-tiempo (just-in-time) con funciones de primera clase. Si bien es más conocido como un lenguaje de scripting (secuencias de comandos) para páginas web, y es usado en muchos entornos fuera del navegador, tal como Node.jsApache CouchDB y Adobe Acrobat. Es un lenguaje de programación basada en prototipos, multiparadigma, de un solo hilo, dinámico, con soporte para programación orientada a objetos, imperativa y declarativa (por ejemplo programación funcional).
  • Ruby: Un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla. Entre sus ventajas tiene: manejo de excepciones, errores, recolector de basura, API elegante para usar ruby en c. Interfaz swig, manejo de hilos, portable, multiplataforma.
  • Python: Lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código.​ Se trata de un lenguaje de programación multiparadigma, ya que soporta parcialmente la orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, dinámico y multiplataforma.
  • Go: Lenguaje de programación concurrente y compilado inspirado en la sintaxis de C, que intenta ser dinámico como Python y con el rendimiento de C o C++. Ha sido desarrollado por Google​ y sus diseñadores iniciales fueron Robert Griesemer, Rob Pike y Ken Thompson. Actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X, pudiendo también ser instalado en estos y en otros sistemas mediante el código fuente. Es imperativo, estructurado, orientado a objetos y con recolector de basura que de momento es soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD, Mac OS X y Plan 9 (puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno). Las arquitecturas soportadas son i386, amd64 y ARM.
  • PHP: es un lenguaje de programación de uso general que se adapta especialmente al desarrollo web. Fue creado inicialmente por el programador danés-canadiense Rasmus Lerdorf en 1994. En la actualidad, la implementación de referencia de PHP es producida por The PHP Group. PHP originalmente significaba Personal Home Page, pero ahora significa el inicialismo recursivo PHP: Hypertext Preprocessor.

Tecnologías en base en el framework

En la actualidad existen una gran diversidad de framework usados en muchos aspectos, desde la parte de diseño, otras desde la parte del modelado del negocio otros van de lo que se le muestra al usuario o simplemente conjugan todas, se muestra a continuación una lista de los framework mas usados para el desarrollo de aplicaciones web:

  • Laravel: está catalogado como “El framework PHP para artesanos de la web”. Fue desarrollado por Taylor Otwell, quien quería un framework con elementos que CodeIgniter no tenía, como la autenticación de usuario. Una de sus ventajas es que tiene Laravel Homestead es una caja Vagrant oficial y preempaquetada que te proporciona un maravilloso entorno de desarrollo sin necesidad de instalar PHP, un servidor web y cualquier otro software de servidor en tu máquina local. Es multiplataforma. Laravel utiliza un motor de plantillas llamado Blade. Packalyst, una colección de paquetes Laravel, tiene más de 15.000 paquetes que puedes usar en tus proyectos.  línea de comandos de la consola Artisan. El ecosistema de Laravel cuenta con varias herramientas útiles como Mix para la compilación de los activos de CSS y JS, y Socialite para la autenticación de OAuth.
  • Symphony: es al mismo tiempo un framework de PHP como una colección de componentes de PHP para la construcción de sitios web. soporta la mayoría de las bases de datos de los frameworks populares de PHP. Utiliza el motor de plantillas Twig.
  • CodeIgniter: ayuda a construir aplicaciones web rápidamente, ya que tiene una configuración mínima. Es conocido por su velocidad. CodeIgniter es flexible. Soporta múltiples métodos de caching.
  • Spring: El framework más popular y utilizado del mundo. Se trata de un framework de desarrollo de aplicaciones ligero para Java EE que en realidad se puede utilizar para todo tipo de aplicaciones, no sólo para la Web, pero que es especialmente útil para éstas. Dispone de varios sub-frameworks como: Spring Core, que dota de funcionalidad a todo lo demás; SpringMVC, para la parte que UI que se devuelve al navegador; Spring ORM, para el acceso a datos; Spring Security, para autenticación y autorización de las aplicaciones; entre otros.
  • Hibernate: es un ORM que nos permite crear la capa de acceso a datos de nuestra aplicación utilizando objetos en lugar de consultas, disminuyendo la fricción entre el mundo de las bases de datos relacionales y la Programación Orientada a Objetos en java.
  • Struts: framework para Java lleno de características, mantenido en este caso por la Fundación Apache. Es bastante antiguo pero por el mismo motivo está muy probado y lo utiliza mucha gente, y sacan versiones constantemente. Es comparable en muchos sentidos con Spring. Está basado en el patrón MVC y su enfoque es en crear aplicaciones de nivel empresarial de manera rápida y que sean fáciles de mantener. Dispone de una arquitectura basada en plugins que permiten extenderlo fácilmente con cualquier funcionalidad que se requiera. Trae muchos plugins de serie para hacer de todo (procesar JSON, crear servicios REST, entre otros) y existen muchos más creados por la comunidad.
  • Pyramid: es un framework flexible para python, se esfuerza por ser minimalista, rápido y fiable. Fue uno de los primeros frameworks web que fue compatible con Python 3. Ideal para iniciar de forma rápida, para desarrolladores que trabajan en proyectos con la API, prototipar un concepto, desarrollo de aplicaciones web grandes, como un CMS o un KMS.
  • Flask: es un microframework para python, que se creó originalmente como una broma del April Fools Day (como el día de los inocentes en EEUU) que derivó en un framework en solo un único archivo. Se esfuerza por ser simple y pequeña; todo el framework consiste en un puñado de módulos. No hay un esqueleto o una estructura de la cual partir, todo se empieza con una página en blanco. Flask no proporciona gran funcionalidades pero, hay extensiones Flask disponibles para agregar ORM, validación de formularios, manejo de carga, y demás.
  • Django: el mayor framework web basado en Python. Se apoya en una comunidad grande y activa. Cuenta con una potente interfaz de administración, así como otras muchas características que deberás ir descubriendo tú mismo. Django ofrece formularios model-based, tiene su propio lenguaje de plantillas y cuenta con una excelente documentación que está disponible de manera gratuita.
  • Iris: se considera el Framework Web más rápido para desarrollar en Lenguaje GO, es un IDE muy completo que cuenta con una serie de funcionalidades que nos permiten desarrollar aplicaciones de manera más rápida y organizada utilizando Lenguaje GO.
  • Wails: es un framework que nos permite escribir aplicaciones de escritorio utilizando Go. La diferencia entre Wails y otras herramientas es que expone el código Go al frontend como funciones que devuelven promesas. Wails logra hacer esto por medio de un mecanismo de ligadura. El código front end se puede desarrollar utilizando cualquier framework de Javascript, como por ejemplo Angular, React, Vue.js y Vuetify. Wails cuenta con la capacidad de envolver código Go así como frontend web en un único binario. La interfaz de línea de comandos de Wails hace que este proceso sea más fácil ya que se encarga de la creación, compilación y empaquetamiento de proyectos.
  • Rack: fue presentado en el 2007 como una forma de unificar la comunicación entre los diferentes frameworks y la comunicación con servidores web. La importancia radica en que los desarrolladores se pueden enfocar en la parte importante o diferenciador de su framework y no en la comunicación con los diferentes servidores web. Es posible crear pequeñas aplicaciones web.
  • Cuba: es un microframework con un enfoque minimalista para desarrollar aplicaciones web. Explota el poder de Rack con esta filosofía de menos es más. El enfoque de Cuba es el manejo de las solicitudes de HTTP dejando la libertad al desarrollador de elegir otras herramientas o librerías para complementar su trabajo.
  • Sinatra: es otra herramienta que permite el desarrollo de aplicaciones web en Ruby. Sinatra se define como un Domain Specific Language o DSL que deja al desarrollador elegir las herramientas adicionales para el tipo de desarrollo que está llevando a cabo.
  • Electron: es un framework de código abierto construido inicialmente por GitHub para el editor Atom en 2013. Esta biblioteca le permite crear aplicaciones GUI de escritorio con tecnologías web como JavaScript, HTML y CSS.
  • NW: frameworks JavaScript para aplicaciones de escritorio es NW.js, anteriormente conocido como node-webkit. Fue construido en el Centro de Tecnología de Código Abierto de Intel combinando el framework Node.js con un motor Chromium (anteriormente conocido como Webkit).
  • Node.js: es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación JavaScript, asíncrono, con E/S de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.​ Fue creado por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla.
  • WebAssembly: (abreviado, Wasm) es una nueva forma con la que los desarrolladores web pueden generar aplicaciones en internet. Hasta ahora, para ello había que recurrir a JavaScript. Pero JavaScript es relativamente lento y, en determinados escenarios, se ve limitado. Por eso, el World Wide Web Consortium (W3C) ha impulsado este nuevo método. Sin embargo, para que Wasm pueda funcionar, el navegador debe ser compatible con este lenguaje. Por este motivo, Mozilla (Firefox), Microsoft (Edge), Apple (Safari) y Google (Chrome) han participado en el desarrollo. En todas las versiones de navegador actuales de estos proveedores se pueden ejecutar aplicaciones en WebAssembly.
  • Bootstrap: Este Framework es uno de los más populares en la actualidad, cuenta con características muy importantes como esquemas de color, modificadores, clases útiles para usar formularios, cards, listas, tablas, videos, carrusel, ventanas modales, tooltips, entre otras. Esta construida sobre SASS y es compatible con LESS y obviamente con SASS.
  • Fundation: Este Framework es más sofisticado, asimismo es muy flexible y fácil de personalizar. Este Framework CSS te permite crear aplicaciones y páginas web adaptables a los dispositivos, empresas como Mozilla, HP, Cisco, eBay, Facebook, Adobe, Disney, entre otras, usan Foundation.
  • PureCSS: Este Framework es adaptable a los dispositivos y fue creado por la empresa Yahoo por el año 2014, fue construido sobre la herramienta Normalize CSS. A diferencia de Bootstrap, no permite crear diseños fijos y es muy ligero, pesa alrededor de 3.5 Kb solamente cuando se comprime y se minimiza. Este Framework cuenta con menús verticales, horizontales y desplegables, asimismo con formularios, botones, tablas, entre otros.

Tecnología en base al servicio web

En esta área se tiene el SOAP, es un protocolo que define cómo deben de realizarse las comunicaciones entre máquinas. SOAP usa XML como lenguaje de intercambio de datos con una estructura compleja que es capaz de albergar todo tipo de datos sobre la solicitud o respuesta generada.

Luego se tiene a REST, usa el propio protocolo HTTP para la comunicación entre máquinas. HTTP es ampliamente soportado por todos los sistemas. Se caracteriza por no tener estado. Es decir, el servidor no es capaz de recordar el estado de la anterior solicitud REST que pudo, o no, hacer un cliente. Por ello, el cliente tiene que enviar en cada solicitud todo el estado de su sesión, lo que se suele hacer mediante un token que le “ayude a recordar” al servidor. Tiene a simplificar las cosas y en esa misma línea se suele usar un lenguaje diferente para representación de los datos, el lenguaje JSON. Hoy REST y JSON se han convertido en la opción más sencilla y por tanto más recomendable para implementar un servicio web.

Se puede concluir que es muy importante conocer el tipo de tecnología que se vaya a utilizar para la realización de una aplicación web o de algún sitio, indistintamente si se utiliza un CMS o se realiza de manera artesanal. Lo anterior permitirá preparar un ambiente de desarrollo idóneo a los proyectos que se generen. Esto es importante tanto a los que inician el proyecto o para personas que se integran en el proyecto. Existen complementos como whatruns que permite instalarse en tu navegador (firefox o chrome) para poder saber el tipo de tecnología, servidor, framework, librerias, y demás. Si se quiere un detalle más se puede hacer uso de builtwith.com donde logra mostrar con más detalle que tipo de herramienta se uso en el sitio en cuestión.

Listado de referencias bibliográficas..

  • Que es un servicio web. https://www.webempresa.com/hosting/que-es-servidor-web.html. Recperado: 10222
  • Servidor apache. https://www.ecured.cu/Servidor_HTTP_Apache. Recuperado: 10222
  • Servidor nginx. https://www.hostinger.mx/tutoriales/que-es-nginx. Recuperdo: 10222
  • Servidor cherokee. https://www.ecured.cu/Servidor_HTTP_Cherokee. Recuperado: 10222
  • Servidor litespeed. https://blog.infranetworking.com/servidor-litespeed. Recuperado: 10222
  • Servidor IIS. https://blog.infranetworking.com/servidor-iis. Recuperado: 10222
  • Servidor Sun Java System Web Server. https://www.martechforum.com/herramienta/sun-java-system-web-server. Recuperado: 10222.
  • Tecnologías usadas en las aplicaciones web. https://developer.mozilla.org/es/docs/Web. Recuperado: 10222
  • ¿qué es ruby? https://www.ruby-lang.org/es/about. Recuperado: 10222
  • ¿qué es php? https://www.php.net/ Recuperado: 10222
  • Los mejores framework de php. https://kinsta.com/es/blog/frameworks-php. Recuperado: 10222
  • Los mejores framework para java. https://www.campusmvp.es/recursos/post/java-los-5-mejores-frameworks-para-desarrollo-web.aspx. Recuperado: 10222
  • Los 4 mejores frameworks web mas populares para python. https://programacion.net/articulo/los_4_frameworks_web_mas_populares_para_python_1069 Recuperado 10222.
  • Iris framework web más rápido para el lenguaje go. http://www.globalnetconsulting.es/iris-framework-web-mas-rapido-desarrollar-lenguaje-go. Recuperado: 10222
  • Wail construyendo aplicaciones de escritorio en go. https://www.encora.com/es/blog/wails-construyendo-aplicaciones-de-escritorio-en-go Recuperado: 10222
  • Los mejores framework de ruby. https://medium.com/codeando-con-ruby/los-frameworks-de-ruby-1b340f311885 Recuperado: 10222
  • Los 5 mejores framework de javascript para aplicaciones de escritorio. https://www.ma-no.org/es/programacion/javascript/los-5-mejores-javascript-frameworks-para-aplicaciones-desktop. Recuperado: 10222
  • Node.js https://www.itdo.com/blog/que-es-node-js-y-para-que-sirve. Recuperado: 10222
  • Los 5 mejores frameworks css para desarrolladores. https://blog.nubecolectiva.com/los-5-mejores-frameworks-css-para-desarrolladores-en-2020. Recuperado: 10222
  • ¿qué es webassembly? https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/que-es-webassembly. Recuperado: 10222
  • Desarrollo de servicios web. https://www.arsys.es/blog/programacion/web-services-desarrollo. Recuperado: 10222
  • ¿qué es json? https://cambiodigital-ol.com/2019/10/json-que-es-como-usarlo-y-con-que-herramientas. Recuperado: 10222

Leave a Reply

Your email address will not be published. Required fields are marked *