{"id":1210,"date":"2026-03-11T15:51:41","date_gmt":"2026-03-11T18:51:41","guid":{"rendered":"https:\/\/maurobernal.com.ar\/blog\/?p=1210"},"modified":"2026-03-11T16:12:27","modified_gmt":"2026-03-11T19:12:27","slug":"angular-migracion-19-20-a-21-guia-practica","status":"publish","type":"post","link":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/","title":{"rendered":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento"},"content":{"rendered":"\n<p class=\"intro-destacado\">Migrar un proyecto Angular de v19\/20 a v21 puede sonar intimidante. En la pr\u00e1ctica, si segu\u00eds el proceso correcto, es incremental: cada paso es reversible y el proyecto sigue funcionando en todo momento. Esta es la gu\u00eda que apliqu\u00e9 en proyectos reales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Antes de empezar: el inventario<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Ver versi\u00f3n actual y dependencias desactualizadas\nng version\nng update\n\n# Verificar compatibilidad antes de actualizar\nnpx npm-check-updates -u --target minor<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 1: Actualizar el core<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Siempre de a una versi\u00f3n mayor a la vez\n# Si est\u00e1s en v19, primero actualizar a v20, luego a v21\n\n# De v20 a v21:\nng update @angular\/core@21 @angular\/cli@21\n\n# El comando aplica schematics autom\u00e1ticos:\n# - Actualiza imports deprecated\n# - Adapta APIs que cambiaron\n# - Avisa sobre cambios manuales necesarios\n\n# Verificar que compila\nng build --configuration production<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 2: Adoptar Zoneless<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ app.config.ts\nimport { provideZonelessChangeDetection } from '@angular\/core';\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    provideZonelessChangeDetection(),\n    provideRouter(routes)\n  ]\n};\n\n\/\/ angular.json: \"polyfills\": []  \/\/ eliminar zone.js\n\/\/ npm uninstall zone.js<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 3: Migrar de Karma a Vitest<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ng generate @angular\/build:vitest\nng test  # verificar que los tests pasan\nnpm uninstall karma karma-chrome-launcher karma-coverage karma-jasmine karma-jasmine-html-reporter<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 4: Standalone components<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Angular 21 asume standalone por defecto\n# Migraci\u00f3n autom\u00e1tica:\nng generate @angular\/core:standalone --mode=convert-to-standalone\nng generate @angular\/core:standalone --mode=prune-ng-modules\nng generate @angular\/core:standalone --mode=standalone-bootstrap<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist completo<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Paso<\/th><th>Acci\u00f3n<\/th><th>Obligatorio<\/th><\/tr><\/thead><tbody>\n<tr><td>1<\/td><td><code>ng update @angular\/core@21 @angular\/cli@21<\/code><\/td><td>&#x2705; S\u00ed<\/td><\/tr>\n<tr><td>2<\/td><td>Verificar que la app compila y los tests pasan<\/td><td>&#x2705; S\u00ed<\/td><\/tr>\n<tr><td>3<\/td><td>Activar <code>provideZonelessChangeDetection()<\/code><\/td><td>Recomendado<\/td><\/tr>\n<tr><td>4<\/td><td>Eliminar Zone.js de polyfills<\/td><td>Con paso 3<\/td><\/tr>\n<tr><td>5<\/td><td>Migrar a Vitest<\/td><td>Recomendado<\/td><\/tr>\n<tr><td>6<\/td><td>Nuevos formularios con Signal Forms<\/td><td>Gradual<\/td><\/tr>\n<tr><td>7<\/td><td>Componentes de nav con funciones standalone del Router<\/td><td>Gradual<\/td><\/tr>\n<tr><td>8<\/td><td>Configurar <code>ng mcp<\/code> para integraci\u00f3n con IA<\/td><td>Opcional<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Errores comunes y c\u00f3mo resolverlos<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ ERROR: El componente no se actualiza despu\u00e9s de activar Zoneless\n\/\/ \u2192 Convertir estado a Signals o llamar markForCheck()\n\n\/\/ ERROR: Tests fallan con \"No current Angular test\" despu\u00e9s de Vitest\n\/\/ \u2192 Verificar imports de @angular\/core\/testing\n\n\/\/ ERROR: \"Cannot find module zone.js\"\n\/\/ \u2192 Buscar y eliminar import 'zone.js' en el proyecto:\n\/\/ grep -r \"import 'zone.js'\" src\/\n\n\/\/ ERROR: ExpressionChangedAfterItHasBeenCheckedError en Zoneless\n\/\/ \u2192 Usar signal.update() o signal.set() en lugar de mutaci\u00f3n directa<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Mi experiencia: cu\u00e1nto tard\u00f3 la migraci\u00f3n<\/h2>\n\n\n\n<p>En un proyecto de tama\u00f1o medio (45 componentes, 12 servicios, 80 tests): el <code>ng update<\/code> tard\u00f3 10 minutos. Revisar avisos y corregir deprecaciones: media jornada. Migraci\u00f3n a Zoneless con todos los tests adaptados a Vitest: un d\u00eda. Adopci\u00f3n gradual de Signal Forms en los formularios principales: dos semanas, a medida que toc\u00e1bamos cada m\u00f3dulo.<\/p>\n\n\n\n<p>No es un proceso de un fin de semana, pero tampoco es una reescritura. Es una evoluci\u00f3n incremental que pod\u00e9s hacer en paralelo con el trabajo normal del equipo.<\/p>\n\n<hr class=\"wp-block-separator\"\/>\n<p><em>\u2190 <a href=\"https:\/\/maurobernal.com.ar\/blog\/blog\/angular\/angular-21-router-signals-standalone-isactive\/\">Art\u00edculo anterior: Router Signals en Angular 21: navegaci\u00f3n standalone sin cargar todo el Router<\/a> | <strong>Fin de la Serie Angular 20 \u2192 21.2<\/strong><\/em><\/p>\n<p><em>\u00bfTen\u00e9s preguntas sobre la migraci\u00f3n en tu proyecto espec\u00edfico? Dej\u00e1 tu caso en los comentarios. &#x1f447;<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Paso a paso para migrar de Angular 19\/20 a Angular 21.2: ng update, Zoneless, Vitest, Signal Forms y standalone. Checklist completo, errores comunes y tiempos reales.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[273],"tags":[274,291,242,289,278,290,284,279],"class_list":["post-1210","post","type-post","status-publish","format-standard","hentry","category-angular","tag-angular","tag-angular21","tag-devops","tag-migration","tag-typescript","tag-upgrade","tag-vitest","tag-zoneless"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal\" \/>\n<meta property=\"og:description\" content=\"Paso a paso para migrar de Angular 19\/20 a Angular 21.2: ng update, Zoneless, Vitest, Signal Forms y standalone. Checklist completo, errores comunes y tiempos reales.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/\" \/>\n<meta property=\"og:site_name\" content=\"devops Mauro Bernal\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-11T18:51:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-11T19:12:27+00:00\" \/>\n<meta name=\"author\" content=\"Mauro Bernal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@_maurobernal\" \/>\n<meta name=\"twitter:site\" content=\"@_maurobernal\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mauro Bernal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/\"},\"author\":{\"name\":\"Mauro Bernal\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"headline\":\"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\\\/20 a Angular 21.2 sin morir en el intento\",\"datePublished\":\"2026-03-11T18:51:41+00:00\",\"dateModified\":\"2026-03-11T19:12:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/\"},\"wordCount\":277,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"keywords\":[\"angular\",\"angular21\",\"devops\",\"migration\",\"typescript\",\"upgrade\",\"vitest\",\"zoneless\"],\"articleSection\":[\"Angular\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/\",\"url\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/\",\"name\":\"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\\\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-11T18:51:41+00:00\",\"dateModified\":\"2026-03-11T19:12:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/angular-migracion-19-20-a-21-guia-practica\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\\\/20 a Angular 21.2 sin morir en el intento\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/\",\"name\":\"devops Mauro Bernal\",\"description\":\"Cuando tu trabajo es hacer que las cosas funcionen bien...\",\"publisher\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\",\"name\":\"Mauro Bernal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"width\":1740,\"height\":1740,\"caption\":\"Mauro Bernal\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\"},\"description\":\"Desarrollo de Sistemas en .Net, IT Callcenters, DBA de SQL Server, Mikrotik, Pentest y T\u00e9cnico consultor de Sistemas Bejerman\",\"sameAs\":[\"https:\\\/\\\/maurobernal.com.ar\",\"https:\\\/\\\/x.com\\\/_maurobernal\",\"https:\\\/\\\/youtube.com\\\/maurobernal\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/","og_locale":"es_ES","og_type":"article","og_title":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal","og_description":"Paso a paso para migrar de Angular 19\/20 a Angular 21.2: ng update, Zoneless, Vitest, Signal Forms y standalone. Checklist completo, errores comunes y tiempos reales.","og_url":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/","og_site_name":"devops Mauro Bernal","article_published_time":"2026-03-11T18:51:41+00:00","article_modified_time":"2026-03-11T19:12:27+00:00","author":"Mauro Bernal","twitter_card":"summary_large_image","twitter_creator":"@_maurobernal","twitter_site":"@_maurobernal","twitter_misc":{"Escrito por":"Mauro Bernal","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/#article","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/"},"author":{"name":"Mauro Bernal","@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"headline":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento","datePublished":"2026-03-11T18:51:41+00:00","dateModified":"2026-03-11T19:12:27+00:00","mainEntityOfPage":{"@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/"},"wordCount":277,"commentCount":0,"publisher":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"keywords":["angular","angular21","devops","migration","typescript","upgrade","vitest","zoneless"],"articleSection":["Angular"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/","url":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/","name":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento &#183; devops Mauro Bernal","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#website"},"datePublished":"2026-03-11T18:51:41+00:00","dateModified":"2026-03-11T19:12:27+00:00","breadcrumb":{"@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/maurobernal.com.ar\/blog\/angular-migracion-19-20-a-21-guia-practica\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/maurobernal.com.ar\/blog\/"},{"@type":"ListItem","position":2,"name":"Gu\u00eda pr\u00e1ctica: c\u00f3mo migr\u00e9 un proyecto de Angular 19\/20 a Angular 21.2 sin morir en el intento"}]},{"@type":"WebSite","@id":"https:\/\/maurobernal.com.ar\/blog\/#website","url":"https:\/\/maurobernal.com.ar\/blog\/","name":"devops Mauro Bernal","description":"Cuando tu trabajo es hacer que las cosas funcionen bien...","publisher":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/maurobernal.com.ar\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283","name":"Mauro Bernal","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","url":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","contentUrl":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","width":1740,"height":1740,"caption":"Mauro Bernal"},"logo":{"@id":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1"},"description":"Desarrollo de Sistemas en .Net, IT Callcenters, DBA de SQL Server, Mikrotik, Pentest y T\u00e9cnico consultor de Sistemas Bejerman","sameAs":["https:\/\/maurobernal.com.ar","https:\/\/x.com\/_maurobernal","https:\/\/youtube.com\/maurobernal"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/1210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/comments?post=1210"}],"version-history":[{"count":3,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/1210\/revisions"}],"predecessor-version":[{"id":1231,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/1210\/revisions\/1231"}],"wp:attachment":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/media?parent=1210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/categories?post=1210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/tags?post=1210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}