{"id":43149,"date":"2024-06-17T09:32:53","date_gmt":"2024-06-17T07:32:53","guid":{"rendered":"https:\/\/www.hiberus.com\/crecemos-contigo\/?p=43149"},"modified":"2024-06-17T09:32:53","modified_gmt":"2024-06-17T07:32:53","slug":"patrones-de-diseno-en-microservicios","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/patrones-de-diseno-en-microservicios\/","title":{"rendered":"Patrones de dise\u00f1o en microservicios"},"content":{"rendered":"<p>Hoy en d\u00eda en el mundo del desarrollo software, la <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/de-una-arquitectura-tradicional-a-microservicios\/\" target=\"_blank\" rel=\"noopener\"><strong>arquitectura de microservicios<\/strong><\/a> ha emergido como un enfoque poderoso para construir aplicaciones escalables, flexibles y robustas.<\/p>\n<p>Los microservicios son tanto un estilo de arquitectura como un modo de programar software. Se centran en <strong>dividir las aplicaciones en elementos m\u00e1s peque\u00f1os e independientes<\/strong> entre s\u00ed. De esta forma conseguiremos crear aplicaciones que sean m\u00e1s f\u00e1ciles de escalar y m\u00e1s r\u00e1pidas de desarrollar, a diferencia del enfoque tradicional y monol\u00edtico de las aplicaciones, en el que todo se compila en una sola pieza.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43150\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img231.jpg\" alt=\"Arquitectura microservicios\" width=\"600\" height=\"422\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img231.jpg 804w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img231-300x211.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img231-768x540.jpg 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img231-360x253.jpg 360w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Patrones de dise\u00f1o en microservicios<\/h2>\n<p>Ahora ya tenemos ciertos conocimientos de lo qu\u00e9 son y <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/cuando-elegir-microservicios-para-construir-tu-e-commerce\/\" target=\"_blank\" rel=\"noopener\">cu\u00e1ndo usar microservicios<\/a> y por qu\u00e9 puede ser efectivo utilizarlos en el desarrollo software. Pero los desarrolladores pueden seguir encontr\u00e1ndose con otros obst\u00e1culos a la hora de trabajar, que pueden afectar al desarrollo o a los <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/los-estandares-de-calidad-del-software-mas-importantes\/\" target=\"_blank\" rel=\"noopener\">est\u00e1ndares de calidad del software<\/a>. Para poder mitigar o, en cierta parte, solucionar estos problemas, tenemos los <strong>patrones de dise\u00f1o en microservicios.<\/strong><\/p>\n<p>Los patrones de dise\u00f1o de software se han convertido en una herramienta invaluable, brindando soluciones probadas y comprobadas para problemas comunes de dise\u00f1o. Cada patr\u00f3n es como una plantilla que puede ser utilizada o modificada al gusto de quien lo use, pudiendo adaptarla al problema de dise\u00f1o particular que tenga tu c\u00f3digo.<\/p>\n<p>&nbsp;<\/p>\n<h2>Cu\u00e1les son los diferentes patrones de dise\u00f1o en microservicios<\/h2>\n<p>A continuaci\u00f3n, vamos a describir los diferentes patrones de dise\u00f1o que podemos utilizar a la hora de usar los microservicios. Describiremos su uso y las diferentes ventajas o casos en los que podemos trabajar con ellos.<\/p>\n<h3>CQRS<\/h3>\n<p><strong>CQRS (Command Query Responsibility Segregation)<\/strong> es un enfoque arquitect\u00f3nico que <strong>separa la responsabilidad de procesar comandos de la responsabilidad de realizar consultas<\/strong>. Siendo los comandos las diferentes operaciones que modifican el estado del sistema, y las consultas las operaciones que se encargan de recuperar datos del sistema.<\/p>\n<p>Con este patr\u00f3n se suelen utilizar dos modelos de datos diferentes:<\/p>\n<ul>\n<li><strong>Modelo de comandos<\/strong>: este modelo se encarga de procesar las operaciones de escritura o comandos. Est\u00e1 dise\u00f1ado para ser eficiente en la modificaci\u00f3n del estado del sistema y puede estar optimizado para operaciones de alto rendimiento y baja latencia. Por lo general, este modelo es m\u00e1s simple y enfocado en la ejecuci\u00f3n de acciones que modifican el estado de la aplicaci\u00f3n.<\/li>\n<li><strong>Modelo de consultas<\/strong>: este modelo es el encargado de atender las operaciones de lectura o consultas. Est\u00e1 optimizado para recuperar y presentar datos de manera eficiente para los usuarios o servicios consumidores. Puede estar estructurado de manera diferente al modelo de comandos, con el objetivo de agilizar las operaciones de lectura y consulta.<\/li>\n<\/ul>\n<p>La separaci\u00f3n de estos modelos permite dise\u00f1ar cada uno de forma independiente, facilitando as\u00ed la optimizaci\u00f3n de las tareas. Con esto, permite tener grandes mejor\u00edas en:<\/p>\n<ul>\n<li><strong>Desacoplamiento<\/strong>: al separar las operaciones de lectura y escritura, se reduce considerablemente la complejidad y el acoplamiento entre componentes.<\/li>\n<li><strong>Escalabilidad<\/strong>: permite escalar vertical u horizontalmente cada modelo seg\u00fan las necesidades de la aplicaci\u00f3n.<\/li>\n<li><strong>Optimizaci\u00f3n<\/strong>: los modelos de comandos y consultas pueden optimizarse de manera independiente para mejorar el rendimiento y la eficiencia de la aplicaci\u00f3n.<\/li>\n<\/ul>\n<p>Sin embargo, aunque CQRS es uno de los patrones m\u00e1s utilizados en el \u00e1rea de microservicios debido a que est\u00e1 directamente alineado con la filosof\u00eda de esta metodolog\u00eda de desarrollo, este patr\u00f3n introduce complejidad adicional en la arquitectura de la aplicaci\u00f3n, ya que requiere la implementaci\u00f3n de l\u00f3gica para sincronizar los modelos de comandos y consultas, as\u00ed como la gesti\u00f3n de posibles inconsistencias entre ellos. Por lo tanto, su adopci\u00f3n debe considerarse cuidadosamente en funci\u00f3n de los requisitos y las necesidades espec\u00edficas de la aplicaci\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n<h3>BFF<\/h3>\n<p>Una aplicaci\u00f3n web, dependiendo de la necesidad, puede tener diferentes niveles de complejidad. Un ejemplo muy b\u00e1sico podr\u00eda ser el de un \u00fanico sistema que genera el contenido del lado del servidor, donde <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/front-end-vs-back-end\/\" target=\"_blank\" rel=\"noopener\">front-end y back-end<\/a> forman parte de este (un monolito). Esto puede aumentar mucho la complejidad hasta llegar al punto en el que los clientes dependan de una API com\u00fan o de una serie de APIs independientes, generando as\u00ed un fuerte acoplamiento entre los sistemas y violando uno de los principios SOLID, concretamente el Principio de Segregaci\u00f3n de Interfaces, al tener los clientes que acceder a APIs que dan mucha m\u00e1s informaci\u00f3n de la que ellos necesitan.<\/p>\n<p>La idea detr\u00e1s del enfoque de <strong>BFF<\/strong> es<strong> simplificar la comunicaci\u00f3n entre un cliente y su servidor mediante la creaci\u00f3n de un punto de entrada dedicado para cada cliente.<\/strong> Esto implica que cada cliente acceda a una API espec\u00edfica dise\u00f1ada para sus necesidades particulares, permiti\u00e9ndole adaptarla seg\u00fan sus requerimientos.<\/p>\n<p>En un patr\u00f3n de microservicios, esto significa generar un servicio intermedio que d\u00e9 soporte \u00fanica y exclusivamente a este tipo de cliente. La principal ventaja de este enfoque radica en la simplificaci\u00f3n de la interacci\u00f3n entre una aplicaci\u00f3n y sus servicios back-end. Adem\u00e1s, facilita la evoluci\u00f3n de los servicios back-end, ya que los cambios y adaptaciones solo requieren modificaciones en los adaptadores sin necesidad de actualizar el cliente en s\u00ed.<\/p>\n<p>Aunque no todo es de color de rosas: uno de los problemas principales de utilizar una API para cada tipo de cliente es la complejidad, ya que estamos pasando de tener un \u00fanico servicio a tener uno por cada aplicaci\u00f3n cliente. Esto se ver\u00eda reflejado tanto en costes de hardware como de desarrollo.<\/p>\n<p>Por ello, \u00bfcu\u00e1ndo debemos usarlo? Bien, esto depender\u00e1 de nuestra aplicaci\u00f3n. Si tenemos una aplicaci\u00f3n en la que un tipo de cliente solo va a utilizar una parte de la API principal, seguramente sea una buena idea separarlo y crear un acceso para ese tipo concreto. En cambio, si todos los clientes van a usar los mismos m\u00e9todos de la API y vamos a tener la misma funcionalidad para todos, tal vez no sea necesario usar este patr\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n<h3>API Gateway<\/h3>\n<p>Esta es una soluci\u00f3n arquitect\u00f3nica com\u00fanmente utilizada en el dise\u00f1o de sistemas distribuidos y microservicios. En esencia, un <strong>API Gateway act\u00faa como un punto de entrada centralizado para todas las solicitudes de clientes que acceden a servicios dentro de un sistema.<\/strong> Funciona como un intermediario entre los clientes y los diferentes microservicios que componen la aplicaci\u00f3n.<\/p>\n<p>La API Gateway se sit\u00faa entre las aplicaciones de clientes y los microservicios, y funciona como un proxy inverso que redirige las solicitudes del cliente a los servicios. Adem\u00e1s de esto, la puerta de enlace de la API puede proporcionar otros servicios transversales como autenticaci\u00f3n, terminaci\u00f3n SSL y cach\u00e9.<\/p>\n<p>Las razones para utilizar este patr\u00f3n en vez de la comunicaci\u00f3n directa son varias:<\/p>\n<ul>\n<li>Facilita que los clientes puedan acceder a los diferentes servicios del sistema, ya que proporciona una<strong> \u00fanica interfaz de entrada<\/strong> para ellos. De esta forma, los clientes no tienen por qu\u00e9 conocer la ubicaci\u00f3n espec\u00edfica de cada servicio, lo que reduce la complejidad y el acoplamiento.<\/li>\n<li>Permite gestionar de manera centralizada aspectos como la seguridad, la autenticaci\u00f3n, la autorizaci\u00f3n y el monitoreo. Esto simplifica la implementaci\u00f3n de pol\u00edticas de seguridad y facilita la aplicaci\u00f3n de actualizaciones o cambios en estas pol\u00edticas.<\/li>\n<li>Permite realizar enrutamiento inteligente de solicitudes, redirigiendo las peticiones a los servicios correspondientes en funci\u00f3n de diversos criterios, como la ruta de la URL, el tipo de solicitud o los encabezados HTTP. Esto mejora la flexibilidad y la capacidad de escalabilidad de la arquitectura.<\/li>\n<li>A su vez puede realizar funciones de cach\u00e9, compresi\u00f3n y optimizaci\u00f3n de solicitudes para mejorar el rendimiento general del sistema. Adem\u00e1s, puede implementar t\u00e9cnicas de balanceo de carga para distribuir la carga de manera equitativa entre los servicios subyacentes.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43151\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img461.jpg\" alt=\"API Gateway\" width=\"600\" height=\"337\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img461.jpg 842w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img461-300x169.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img461-768x431.jpg 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2024\/06\/img461-360x202.jpg 360w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Como\u00a0<a href=\"https:\/\/www.hiberus.com\/modern-applications\/microservicios\">expertos en microservicios<\/a> con m\u00e1s de 1000 aplicaciones gestionadas, en <a href=\"https:\/\/www.hiberus.com\/\" target=\"_blank\" rel=\"noopener\">hiberus<\/a> contamos con las capacidades, la experiencia y los conocimientos necesarios para ayudarte en la <strong><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/migracion-microservicios\/\" target=\"_blank\" rel=\"noopener\">migraci\u00f3n a microservicios<\/a> de tu negocio digital.<\/strong>\u00a0\u00bfQuieres saber m\u00e1s? \u00a1No dudes en preguntarnos!<\/p>\n        <div class=\"row\">\n            <div class=\"block-cta-form\" style=\"background-color: #003664;\">\n                <div class=\"content-cta-form\">\n                    <div class=\"text-cta-form\">\n                        <p class=\"title-cta-form\">\u00bfQuieres m\u00e1s informaci\u00f3n sobre nuestra \u00e1rea de Microservicios?<\/p>\n                        <p>Contacta con nuestro equipo de Microservicios<\/p>\n                    <\/div>\n                    <div class=\"form-fields\">\n                        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33973-o1\" lang=\"es-ES\" dir=\"ltr\" data-wpcf7-id=\"33973\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/43149#wpcf7-f33973-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33973\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_ES\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33973-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div id=\"responsive-form\" class=\"clearfix\">\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"nombre\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"apellido\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Apellido *\" value=\"\" type=\"text\" name=\"apellido\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"correo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Correo corporativo *\" value=\"\" type=\"email\" name=\"correo\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"telf-contacto\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"telf-contacto\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"compania\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Compa\u00f1ia *\" value=\"\" type=\"text\" name=\"compania\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Mensaje *\" name=\"mensaje\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/www.hiberus.com\/politica\" target=\"_blank\"><u>Pol\u00edtica de privacidad<\/u><\/a><\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"marketing\"><span class=\"wpcf7-form-control wpcf7-acceptance optional\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"marketing\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Me gustar\u00eda recibir comunicaciones de marketing de Hiberus y sobre sus productos, servicios y eventos.<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Contacta con nosotros\" \/>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div id=\"campos_ocultos\" class=\"hidden\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new1\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new1\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new1\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new2\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new2\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new2\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new3\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new3\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new3\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new4\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new4\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new4\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new_p\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new_p\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new_p\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<!--end responsive-form--><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>Hoy en d\u00eda en el mundo del desarrollo software, la arquitectura de microservicios ha emergido como un enfoque poderoso para construir aplicaciones&#8230;<\/p>\n","protected":false},"author":389,"featured_media":43194,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[7,237],"tags":[56],"class_list":{"0":"post-43149","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-next-tech","8":"category-microservicios","9":"tag-microservicios"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/43149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/389"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=43149"}],"version-history":[{"count":6,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/43149\/revisions"}],"predecessor-version":[{"id":43199,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/43149\/revisions\/43199"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/43194"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=43149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=43149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=43149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}