{"id":1258,"date":"2026-03-12T08:57:47","date_gmt":"2026-03-12T11:57:47","guid":{"rendered":"https:\/\/maurobernal.com.ar\/blog\/?p=1258"},"modified":"2026-03-12T08:57:47","modified_gmt":"2026-03-12T11:57:47","slug":"csharp-14-field-keyword-backing-field-propiedades","status":"publish","type":"post","link":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/","title":{"rendered":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos"},"content":{"rendered":"\n<p class=\"intro-destacado\">Hay un patr\u00f3n que repito en cada clase de dominio: propiedad con validaci\u00f3n en el setter, campo privado de respaldo, tres l\u00edneas de c\u00f3digo para lo que deber\u00eda ser una. Con la palabra clave <code>field<\/code> en C# 14, eso termin\u00f3. El compilador genera el backing field y yo solo escribo la l\u00f3gica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El problema que resuelve<\/h2>\n\n\n\n<p>En C# siempre hubo una tensi\u00f3n: las auto-properties son concisas pero no permiten l\u00f3gica en get\/set. Si necesit\u00e1s validar, transformar o notificar en un setter, ten\u00e9s que sacrificar la sintaxis limpia y declarar un campo privado manualmente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code\">\/\/ &#x274c; Antes de C# 14: el campo de respaldo manual es inevitable\npublic class Usuario\n{\n    private string _nombre = string.Empty;  \/\/ campo privado repetitivo\n    private int _edad;\n    private string _email = string.Empty;\n\n    public string Nombre\n    {\n        get =&gt; _nombre;\n        set =&gt; _nombre = value?.Trim() ?? throw new ArgumentNullException(nameof(value));\n    }\n\n    public int Edad\n    {\n        get =&gt; _edad;\n        set =&gt; _edad = value is &gt;= 0 and &lt;= 150\n            ? value\n            : throw new ArgumentOutOfRangeException(nameof(value));\n    }\n\n    public string Email\n    {\n        get =&gt; _email;\n        set =&gt; _email = value?.ToLowerInvariant() ?? throw new ArgumentNullException(nameof(value));\n    }\n}\n\n\/\/ &#x2705; C# 14: field \u2014 el compilador genera el backing field\npublic class Usuario\n{\n    public string Nombre\n    {\n        get =&gt; field;\n        set =&gt; field = value?.Trim() ?? throw new ArgumentNullException(nameof(value));\n    }\n\n    public int Edad\n    {\n        get =&gt; field;\n        set =&gt; field = value is &gt;= 0 and &lt;= 150\n            ? value\n            : throw new ArgumentOutOfRangeException(nameof(value));\n    }\n\n    public string Email\n    {\n        get =&gt; field;\n        set =&gt; field = value?.ToLowerInvariant() ?? throw new ArgumentNullException(nameof(value));\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Casos de uso reales<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Valor con lazy initialization<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code\">\/\/ Antes: campo privado para lazy init\npublic class Configuracion\n{\n    private string? _cadenaConexion;\n\n    public string CadenaConexion\n    {\n        get =&gt; _cadenaConexion ??= CargarDesdeConfiguracion();\n    }\n}\n\n\/\/ C# 14: mucho m\u00e1s limpio\npublic class Configuracion\n{\n    public string CadenaConexion\n    {\n        get =&gt; field ??= CargarDesdeConfiguracion();\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">INotifyPropertyChanged sin campos privados<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code\">\/\/ Muy \u00fatil en ViewModels de WPF\/MAUI\/Blazor\npublic class ProductoViewModel : INotifyPropertyChanged\n{\n    public event PropertyChangedEventHandler? PropertyChanged;\n\n    public string Nombre\n    {\n        get =&gt; field;\n        set\n        {\n            if (field == value) return;\n            field = value;\n            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Nombre)));\n        }\n    }\n\n    public decimal Precio\n    {\n        get =&gt; field;\n        set\n        {\n            if (field == value) return;\n            field = value &gt; 0 ? value : throw new ArgumentException(\"Precio debe ser positivo\");\n            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Precio)));\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Propiedades de solo init con validaci\u00f3n<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code\">\/\/ init-only properties con validaci\u00f3n \u2014 imposible antes sin campo privado\npublic class Pedido\n{\n    public required string NumeroPedido\n    {\n        get =&gt; field;\n        init =&gt; field = string.IsNullOrWhiteSpace(value)\n            ? throw new ArgumentException(\"N\u00famero de pedido no puede estar vac\u00edo\")\n            : value.ToUpperInvariant();\n    }\n\n    public DateTime FechaCreacion\n    {\n        get =&gt; field;\n        init =&gt; field = value == default ? DateTime.UtcNow : value;\n    }\n}\n\n\/\/ Uso con object initializer \u2014 sin cambios en el lado del consumidor\nvar pedido = new Pedido { NumeroPedido = \"ord-123\" };\nConsole.WriteLine(pedido.NumeroPedido); \/\/ \"ORD-123\" (uppercase autom\u00e1tico)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">field es contextual: no rompe c\u00f3digo existente<\/h2>\n\n\n\n<p><code>field<\/code> es una palabra clave <em>contextual<\/em>: solo tiene el significado especial dentro de un getter o setter de propiedad. Si ten\u00e9s una variable local, par\u00e1metro o campo llamado <code>field<\/code> en otro contexto, no hay conflicto. El compilador sabe por el contexto qu\u00e9 significa.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code\">\/\/ field fuera de una propiedad: variable normal\nvar field = \"esto es una variable\";\nConsole.WriteLine(field);  \/\/ sin problema\n\n\/\/ field en par\u00e1metro de m\u00e9todo: sin conflicto\nvoid Procesar(string field) =&gt; Console.WriteLine(field);\n\n\/\/ Solo dentro de get\/set de una propiedad tiene el significado especial\npublic string Nombre { get =&gt; field; set =&gt; field = value; }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">El resultado: c\u00f3digo m\u00e1s limpio, misma sem\u00e1ntica<\/h2>\n\n\n\n<p>En un modelo de dominio con 12 entidades, la adopci\u00f3n de <code>field<\/code> elimin\u00f3 47 campos privados de respaldo. El c\u00f3digo resultante es m\u00e1s f\u00e1cil de leer, m\u00e1s f\u00e1cil de mantener y genera exactamente el mismo IL que la versi\u00f3n con campos expl\u00edcitos. Zero costo en runtime, m\u00e1ximo beneficio en legibilidad.<\/p>\n\n<hr class=\"wp-block-separator\"\/>\n<p><em><a href=\"https:\/\/maurobernal.com.ar\/blog\/?p=1257\">\u2190 C# 13: params modernos, Lock de primera clase y Task.WhenEach<\/a> | <strong>Serie .NET 8 \u2192 .NET 10<\/strong> | Pr\u00f3ximo: <a href=\"https:\/\/maurobernal.com.ar\/blog\/?p=1259\">Extension Members en C# 14\/15: propiedades y miembros est\u00e1ticos de extensi\u00f3n como nunca antes \u2192<\/a><\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>La palabra clave field en C# 14 elimina los campos privados de respaldo. Validaci\u00f3n en setters, lazy init, INotifyPropertyChanged e init-only properties sin boilerplate.<\/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":[202],"tags":[211,18,294,302,65],"class_list":["post-1258","post","type-post","status-publish","format-standard","hentry","category-dotnet","tag-csharp","tag-dotnet","tag-dotnet10","tag-field-keyword","tag-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#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\/csharp-14-field-keyword-backing-field-propiedades\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#183; devops Mauro Bernal\" \/>\n<meta property=\"og:description\" content=\"La palabra clave field en C# 14 elimina los campos privados de respaldo. Validaci\u00f3n en setters, lazy init, INotifyPropertyChanged e init-only properties sin boilerplate.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/\" \/>\n<meta property=\"og:site_name\" content=\"devops Mauro Bernal\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-12T11:57:47+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=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/\"},\"author\":{\"name\":\"Mauro Bernal\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"headline\":\"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos\",\"datePublished\":\"2026-03-12T11:57:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/\"},\"wordCount\":283,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"keywords\":[\"csharp\",\"dotnet\",\"dotnet10\",\"field-keyword\",\"performance\"],\"articleSection\":[\"DotNet\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/\",\"url\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/\",\"name\":\"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#183; devops Mauro Bernal\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-12T11:57:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/csharp-14-field-keyword-backing-field-propiedades\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos\"}]},{\"@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":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#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\/csharp-14-field-keyword-backing-field-propiedades\/","og_locale":"es_ES","og_type":"article","og_title":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#183; devops Mauro Bernal","og_description":"La palabra clave field en C# 14 elimina los campos privados de respaldo. Validaci\u00f3n en setters, lazy init, INotifyPropertyChanged e init-only properties sin boilerplate.","og_url":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/","og_site_name":"devops Mauro Bernal","article_published_time":"2026-03-12T11:57:47+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":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/#article","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/"},"author":{"name":"Mauro Bernal","@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"headline":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos","datePublished":"2026-03-12T11:57:47+00:00","mainEntityOfPage":{"@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/"},"wordCount":283,"commentCount":0,"publisher":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"keywords":["csharp","dotnet","dotnet10","field-keyword","performance"],"articleSection":["DotNet"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/","url":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/","name":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos &#183; devops Mauro Bernal","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#website"},"datePublished":"2026-03-12T11:57:47+00:00","breadcrumb":{"@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/maurobernal.com.ar\/blog\/csharp-14-field-keyword-backing-field-propiedades\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/maurobernal.com.ar\/blog\/"},{"@type":"ListItem","position":2,"name":"La palabra clave field en C# 14: adi\u00f3s para siempre a los backing fields repetitivos"}]},{"@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\/1258","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=1258"}],"version-history":[{"count":1,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/1258\/revisions"}],"predecessor-version":[{"id":1267,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/1258\/revisions\/1267"}],"wp:attachment":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/media?parent=1258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/categories?post=1258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/tags?post=1258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}