{"id":206,"date":"2023-07-21T11:27:20","date_gmt":"2023-07-21T14:27:20","guid":{"rendered":"https:\/\/danielsegovia.com\/plataforma\/?p=206"},"modified":"2023-07-21T11:27:21","modified_gmt":"2023-07-21T14:27:21","slug":"15-introduccion-a-objetos","status":"publish","type":"post","link":"https:\/\/danielsegovia.com\/plataforma\/15-introduccion-a-objetos\/","title":{"rendered":"15 &#8211; Introducci\u00f3n a objetos"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Programaci\u00f3n Orientada a Objetos: Conceptos Fundamentales y Ejemplos en JavaScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La programaci\u00f3n orientada a objetos (POO) es un paradigma de programaci\u00f3n ampliamente utilizado en el desarrollo de software. Proporciona una forma organizada y estructurada de dise\u00f1ar y desarrollar aplicaciones al centrarse en la interacci\u00f3n entre objetos. En este art\u00edculo, exploraremos la historia de la POO, los conceptos fundamentales y proporcionaremos ejemplos pr\u00e1cticos en JavaScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Historia de la programaci\u00f3n orientada a objetos<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/danielsegovia.com\/plataforma\/wp-content\/uploads\/2023\/06\/Leonardo_Diffusion_people_working_with_old_computers_2.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/danielsegovia.com\/plataforma\/wp-content\/uploads\/2023\/06\/Leonardo_Diffusion_people_working_with_old_computers_2-edited.jpg\" alt=\"\" class=\"wp-image-528\" srcset=\"https:\/\/danielsegovia.com\/plataforma\/wp-content\/uploads\/2023\/06\/Leonardo_Diffusion_people_working_with_old_computers_2-edited.jpg 1024w, https:\/\/danielsegovia.com\/plataforma\/wp-content\/uploads\/2023\/06\/Leonardo_Diffusion_people_working_with_old_computers_2-edited-300x188.jpg 300w, https:\/\/danielsegovia.com\/plataforma\/wp-content\/uploads\/2023\/06\/Leonardo_Diffusion_people_working_with_old_computers_2-edited-768x480.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La programaci\u00f3n orientada a objetos tiene sus ra\u00edces en lenguajes como <a href=\"https:\/\/es.wikipedia.org\/wiki\/Simula\" target=\"_blank\" rel=\"noreferrer noopener\">Simula<\/a> y <a href=\"https:\/\/proyectoidis.org\/smalltalk\/\" target=\"_blank\" rel=\"noreferrer noopener\">Smalltalk<\/a>, que se desarrollaron en la d\u00e9cada de 1960. Estos lenguajes sentaron las bases para los conceptos fundamentales de la POO, como las clases y los objetos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, fue el lenguaje de programaci\u00f3n <strong>Java<\/strong>, lanzado en 1995, el que populariz\u00f3 en gran medida la programaci\u00f3n orientada a objetos. Java se convirti\u00f3 en un lenguaje ampliamente utilizado en el desarrollo de software empresarial y su adopci\u00f3n masiva ayud\u00f3 a establecer la importancia de la POO en la industria que hasta el d\u00eda de hoy sigue en vigencia.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conceptos fundamentales de la programaci\u00f3n orientada a objetos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La programaci\u00f3n orientada a objetos (POO) es un enfoque de programaci\u00f3n que se basa en la idea de organizar y estructurar el c\u00f3digo en torno a objetos. Un objeto es una entidad que representa una cosa o concepto del mundo real y tiene propiedades (atributos) y comportamientos (m\u00e9todos) asociados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una clase es una plantilla o molde que define las caracter\u00edsticas y comportamientos comunes que tienen los objetos de un mismo tipo. Imagina que tienes una clase llamada Vehiculo, que representa de manera general a todos los veh\u00edculos. La clase Vehiculo define las propiedades y comportamientos b\u00e1sicos que se aplican a todos los veh\u00edculos, como la marca, el modelo y la velocidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir de una clase, se pueden crear objetos espec\u00edficos. Cada objeto es una instancia de una clase particular y tiene sus propias propiedades y comportamientos. Por ejemplo, podr\u00edamos crear un objeto de la clase Vehiculo que represente un auto en espec\u00edfico. Podr\u00edamos llamarlo miAuto y asignarle valores concretos a sus atributos, como la marca \u00abToyota\u00bb, el modelo \u00abCorolla\u00bb y la velocidad inicial de 0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, dentro de la programaci\u00f3n orientada a objetos, tambi\u00e9n es posible heredar propiedades y comportamientos de una clase base a una clase derivada. Imagina que creamos una clase llamada Ferrari, que hereda de la clase Vehiculo. La clase Ferrari puede agregar comportamientos espec\u00edficos para los autos Ferrari, como una funci\u00f3n de aceleraci\u00f3n m\u00e1s potente. Esto significa que una instancia de la clase Ferrari puede avanzar m\u00e1s r\u00e1pido que otros autos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tienes los 4 pilares que definen la programaci\u00f3n orientada a objetos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Abstracci\u00f3n<\/strong>: La abstracci\u00f3n es el proceso de enfocarse en los aspectos esenciales de un objeto y ocultar los detalles de implementaci\u00f3n. Permite representar y manipular conceptos complejos de manera m\u00e1s clara y sencilla mediante el uso de clases abstractas e interfaces.<\/li>\n\n\n\n<li><strong>Polimorfismo<\/strong>: El polimorfismo es la capacidad de tratar objetos de diferentes clases de manera gen\u00e9rica y flexible. Permite utilizar un mismo m\u00e9todo o funci\u00f3n con el mismo nombre en diferentes objetos, obteniendo resultados espec\u00edficos para cada uno seg\u00fan su implementaci\u00f3n particular. Facilita el dise\u00f1o flexible y extensible de aplicaciones.<\/li>\n\n\n\n<li><strong>Herencia<\/strong>: La herencia es un mecanismo que permite establecer relaciones jer\u00e1rquicas entre clases. Permite que una clase (subclase) herede propiedades y comportamientos de otra clase (clase base), evitando la duplicaci\u00f3n de c\u00f3digo y facilitando la reutilizaci\u00f3n. Las subclases pueden agregar sus propias caracter\u00edsticas y modificar o extender el comportamiento heredado.<\/li>\n\n\n\n<li><strong>Encapsulamiento<\/strong>: El encapsulamiento es el principio de ocultar los detalles de implementaci\u00f3n de una clase y exponer solo una interfaz p\u00fablica. Permite proteger los datos y comportamientos internos de una clase, evitando modificaciones directas y asegurando el acceso controlado a trav\u00e9s de m\u00e9todos p\u00fablicos. El encapsulamiento mejora la modularidad, la seguridad y el mantenimiento del c\u00f3digo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Estos conceptos fundamentales trabajan en conjunto para crear un dise\u00f1o de software s\u00f3lido y orientado a objetos. La abstracci\u00f3n y el encapsulamiento ayudan a crear interfaces claras, mientras que la herencia y el polimorfismo permiten la reutilizaci\u00f3n y la flexibilidad en la estructura y el comportamiento de las clases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Observa como los amigos de <a href=\"https:\/\/www.youtube.com\/@BitBoss\">BitBoss<\/a> nos ayudan a comprender estos conceptos sin tantas palabras raras :-)<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Programaci\u00f3n Orientada a Objetos (POO): Abstracci\u00f3n, Encapsulamiento, Herencia, Polimorfismo\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/SI7O81GMG2A?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Objetos en JavaScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En JavaScript, los objetos son estructuras de datos que permiten almacenar y organizar m\u00faltiples valores y propiedades relacionadas. Los objetos son una parte fundamental de JavaScript y se utilizan ampliamente en el lenguaje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un objeto en JavaScript est\u00e1 compuesto por un conjunto de propiedades, donde cada propiedad consiste en una clave (tambi\u00e9n conocida como nombre) y un valor asociado. Las propiedades pueden contener cualquier tipo de valor: primitivo, objeto, funci\u00f3n, etc. Estas propiedades pueden ser accedidas, modificadas o eliminadas dentro del objeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este ejemplo es equivalente al anterior, pero es m\u00e1s corto, r\u00e1pido y c\u00f3modo, por lo que se aconseja declararlos siempre as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const objeto = {};    \/\/ Objeto vac\u00edo\n\n\/\/Tambi\u00e9n puedes llegar a ver este tipo pero ya casi no utiliza\nconst objeto2 = new Object(); \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Propiedades<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para a\u00f1adir un propiedad al objeto lo podemos hacer desde su creaci\u00f3n o bien a un objeto ya existente<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n   \"nombre\": \"Daniel\",\n   \"apellido\": \"Segovia\"\n}; \n\nconst otra_persona = {}\notra_persona.nombre = \"Daniel\"\notra_persona.apellido = \"Segovia\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lo interesante de est\u00e1 estructura de datos es que puedes almacenar en cada propiedad el tipo de datos que desees, no es obligatorio definir siempre el mismo tipo de dato, puedes almacenar en una propiedad un Number y en otra un String sin problemas, inclusive podr\u00e1s almacenar arrays u otros objetos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n    \"nombre\": \"Daniel\",\n    \"apellido\": \"Segovia\",\n    \"Edad\": 25, \/\/claramente no tengo 25 :-)\n    \"direccion\": { \/\/defino un objeto\n       \"calle\": \"Av Corrientes\",\n       \"numero\": 9824,\n       \"piso\": 3,\n       \"departamento\": false,\n       \"provincia\": \"Buenos Aires\",\n       \"pais\": \"Argentina\"\n    },\n    \"documentos\": [ \/\/defino un array donde cada elemento es un objeto\n        {\"tipo\": \"DNI\", \"numero\": \"1292939592\", \"activo\": true},\n        {\"tipo\": \"Licencia de conducir\", \"activo\": false, \"vencimiento\": \"12\/25\/2002\"},\n    ]\n}; <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para acceder a las propiedades solamente tienes que poner el nombre del objeto punto nombre de propiedad<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\/\/tomar el ejemplo del objeto anterior\n\nconsole.log(persona.nombre) \/\/imprime Daniel\nconsole.log(persona.direccion.calle) \/\/imprime Av Corrientes\nconsole.log(persona.documentos[0].tipo) \/\/imprime DNI\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00e9todos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para a\u00f1adir m\u00e9todos solamente tienes que definir tu <strong>key<\/strong> dos puntos y escribir una funci\u00f3n, ya sea con function o una arrow function<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n    \"nombre\": \"Daniel\",\n    \"apellido\": \"Segovia\",\n    helloWorld: () =&gt; {\n        return `Hello World`\n    }\n}; \nconsole.log(persona.helloWorld())<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para acceder a las propiedades del mismo objeto dentro de las funciones tenemos la palabra reserva <strong>this<\/strong>, pero cambiar\u00e1 el contexto si decides escribir una funci\u00f3n con function o bien decides escribirla con una arrow function, prueba el siguiente ejemplo y velo por tu mismo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n    \"nombre\": \"Daniel\",\n    \"apellido\": \"Segovia\",\n    fullName: function () {\n        return `${this.nombre} ${this.apellido}`\n    }\n}; \nconsole.log(persona.fullName())\n\nconst persona2 = {\n    \"nombre\": \"Daniel\",\n    \"apellido\": \"Segovia\",\n    fullName: () =&gt; {\n        return `${this.nombre} ${this.apellido}`\n    }\n}; \nconsole.log(persona2.fullName())<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Convert\u00ed tu objeto a texto y de texto a objeto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>JSON.stringify()<\/code> es una funci\u00f3n en JavaScript que convierte un objeto JavaScript en una cadena de texto JSON. Toma un objeto como argumento y devuelve una representaci\u00f3n JSON del objeto. La cadena JSON resultante se puede utilizar para enviar datos a un servidor o para almacenar datos en un archivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sintaxis b\u00e1sica de <code>JSON.stringify()<\/code> es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">JSON.stringify(objeto, propiedades, espaciado)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>\u00a1Claro! Aqu\u00ed tienes una explicaci\u00f3n te\u00f3rica seguida de algunos ejemplos pr\u00e1cticos de <code>JSON.stringify()<\/code> en JavaScript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teor\u00eda:<\/strong> <code>JSON.stringify()<\/code> es una funci\u00f3n en JavaScript que convierte un objeto JavaScript en una cadena de texto JSON. Toma un objeto como argumento y devuelve una representaci\u00f3n JSON del objeto. La cadena JSON resultante se puede utilizar para enviar datos a un servidor o para almacenar datos en un archivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sintaxis b\u00e1sica de <code>JSON.stringify()<\/code> es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javascriptCopy code<code>JSON.stringify(objeto, propiedades, espaciado)\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>objeto<\/code>: El objeto que se va a convertir a JSON.<\/li>\n\n\n\n<li><code>propiedades<\/code> (opcional): Un array o una funci\u00f3n que especifica qu\u00e9 propiedades del objeto deben incluirse en la cadena JSON. Si se omite, se incluir\u00e1n todas las propiedades enumerables.<\/li>\n\n\n\n<li><code>espaciado<\/code> (opcional): Un valor num\u00e9rico o una cadena que se utiliza para agregar sangr\u00edas y espacios en blanco a la cadena JSON con el fin de que sea m\u00e1s legible. Si se especifica un n\u00famero, indica el n\u00famero de espacios en blanco para la sangr\u00eda. Si se especifica una cadena, se utilizar\u00e1 esa cadena como prefijo para cada nivel de anidamiento.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tienes algunos ejemplos para ilustrar c\u00f3mo utilizar <code>JSON.stringify()<\/code> en la pr\u00e1ctica:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n  nombre: 'Juan',\n  edad: 30,\n  ciudad: 'Madrid'\n};\n\nconst personaJSON = JSON.stringify(persona);\nconsole.log(personaJSON);\n\/\/ Salida: {\"nombre\":\"Juan\",\"edad\":30,\"ciudad\":\"Madrid\"}\n\nconst persona2 = {\n  nombre: 'Juan',\n  edad: 30,\n  ciudad: 'Madrid'\n};\n\nconst persona2JSON = JSON.stringify(persona2, ['nombre', 'ciudad']);\nconsole.log(persona2JSON);\n\/\/ Salida: {\"nombre\":\"Juan\",\"ciudad\":\"Madrid\"}\n\n\n\nconst persona3 = {\n  nombre: 'Juan',\n  edad: 30,\n  ciudad: 'Madrid'\n};\n\nconst persona3JSON = JSON.stringify(persona3, null, 2);\nconsole.log(persona3JSON);\n\/* Salida:\n{\n  \"nombre\": \"Juan\",\n  \"edad\": 30,\n  \"ciudad\": \"Madrid\"\n}\n*\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">De texto a objeto<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>JSON.parse()<\/code> es una funci\u00f3n en JavaScript que convierte una cadena de texto JSON en un objeto JavaScript. Toma una cadena de texto JSON como argumento y devuelve un objeto JavaScript equivalente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sintaxis b\u00e1sica de <code>JSON.parse()<\/code> es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">JSON.parse(cadena)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>cadena<\/code>: La cadena de texto JSON que se va a convertir en un objeto JavaScript.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">const personaJSON = '{\"nombre\":\"Juan\",\"edad\":30,\"ciudad\":\"Madrid\"}';\n\nconst persona = JSON.parse(personaJSON);\nconsole.log(persona);\n\/\/ Salida: { nombre: 'Juan', edad: 30, ciudad: 'Madrid' }\nconsole.log(persona.nombre);\n\/\/ Salida: Juan\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo, la variable <code>personaJSON<\/code> contiene una cadena de texto JSON. Luego, utilizamos <code>JSON.parse()<\/code> para convertir esa cadena en un objeto JavaScript llamado <code>persona<\/code>. Finalmente, imprimimos el objeto <code>persona<\/code> en la consola y obtenemos los valores del objeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recuerda que es importante asegurarte de que la cadena de texto que est\u00e1s pasando a <code>JSON.parse()<\/code> sea una representaci\u00f3n v\u00e1lida de JSON. Si la cadena no es v\u00e1lida, se generar\u00e1 una excepci\u00f3n de an\u00e1lisis (<code>SyntaxError<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y para cerrar aqu\u00ed tienes un ejemplo que combina tanto <code>JSON.stringify()<\/code> como <code>JSON.parse()<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const persona = {\n  nombre: 'Juan',\n  edad: 30,\n  ciudad: 'Madrid'\n};\n\n\/\/ Utilizando JSON.stringify() para convertir el objeto a una cadena JSON\nconst personaJSON = JSON.stringify(persona);\nconsole.log(personaJSON);\n\/\/ Salida: {\"nombre\":\"Juan\",\"edad\":30,\"ciudad\":\"Madrid\"}\n\n\/\/ Utilizando JSON.parse() para convertir la cadena JSON de vuelta a un objeto JavaScript\nconst personaObjeto = JSON.parse(personaJSON);\nconsole.log(personaObjeto);\n\/\/ Salida: { nombre: 'Juan', edad: 30, ciudad: 'Madrid' }<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Prep\u00e1rate para la pr\u00f3xima clase<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta aqu\u00ed hemos llegado con la introducci\u00f3n a objetos, en la pr\u00f3xima clase veremos m\u00e1s sobre este tema y ejercitaremos <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programaci\u00f3n Orientada a Objetos: Conceptos Fundamentales y Ejemplos en JavaScript La programaci\u00f3n orientada a objetos (POO) es un paradigma de programaci\u00f3n ampliamente utilizado en el desarrollo de software. Proporciona una forma organizada y estructurada de dise\u00f1ar y desarrollar aplicaciones al centrarse en la interacci\u00f3n entre objetos. En este art\u00edculo, exploraremos la historia de la POO, &#8230; <a title=\"15 &#8211; Introducci\u00f3n a objetos\" class=\"read-more\" href=\"https:\/\/danielsegovia.com\/plataforma\/15-introduccion-a-objetos\/\" aria-label=\"Leer m\u00e1s sobre 15 &#8211; Introducci\u00f3n a objetos\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[],"class_list":["post-206","post","type-post","status-publish","format-standard","hentry","category-curso-de-node-js","category-logica-de-programacion-con-javascript"],"_links":{"self":[{"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/posts\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/comments?post=206"}],"version-history":[{"count":20,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/posts\/206\/revisions"}],"predecessor-version":[{"id":578,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/posts\/206\/revisions\/578"}],"wp:attachment":[{"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/media?parent=206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/categories?post=206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danielsegovia.com\/plataforma\/wp-json\/wp\/v2\/tags?post=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}