{"id":29332,"date":"2018-10-24T00:00:00","date_gmt":"2018-10-23T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/"},"modified":"2021-05-20T19:31:10","modified_gmt":"2021-05-20T17:31:10","slug":"about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/","title":{"rendered":"About HttpClient in Angular: immutable or not immutable, that is the question!"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"335\" data-attachment-id=\"29326\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/attachment\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&amp;ssl=1\" data-orig-size=\"568,335\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"7b354a8e-9b62-4bc2-b529-0cd5a2863a98\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=300%2C177&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?resize=568%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-29326\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png 568w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98-480x283.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 568px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">During the porting of Raptor.UI (the front-end Angular application of our framework), we have used the new Angular HttpClient (as discussed&nbsp;<a href=\"http:\/\/www.tolist.net\/Article\/Il-nuovo-HttpClient-in-Angular-5-18\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>), with,apparently, any breaking change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If we examine in depth, we have converted the&nbsp;<em>UrlSearchParams<\/em>&nbsp;of&nbsp;<em>@angular\/<\/em><em>http<\/em>&nbsp;module with the&nbsp;<em>HttpParams<\/em>&nbsp;of&nbsp;<em>@angular\/common\/<\/em><em>http<\/em>. The code was as follows:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst params = new UrlSearchParams(); \nparams.set(&#039;Direction&#039;, parameters.Direction === &#039;desc&#039; ? &#039;0&#039; : &#039;1&#039;); \nparams.set(&#039;ElementCount&#039;, parameters.ElementCount); \nparams.set(&#039;FieldsExcludedFromTheSearch&#039;, parameters.FieldsExcludedFromTheSearch); \nparams.set(&#039;Language&#039;, language); \nparams.set(&#039;OrderBy&#039;, parameters.OrderBy); \nparams.set(&#039;PageNumber&#039;, parameters.PageNumber); \nparams.set(&#039;PageSize&#039;, parameters.PageSize);\nparams.set(&#039;Pages&#039;, parameters.Pages); \nparams.set(&#039;SearchText&#039;, parameters.SearchText); \nparams.set(&#039;RelatedId&#039;, parameters.RelatedId);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">We have converted the code as follows, with no compilation errors:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst params = new HttpParams(); \nparams.set(&#039;Direction&#039;, parameters.Direction === &#039;desc&#039; ? &#039;0&#039; : &#039;1&#039;); \nparams.set(&#039;ElementCount&#039;, parameters.ElementCount); \nparams.set(&#039;FieldsExcludedFromTheSearch&#039;, parameters.FieldsExcludedFromTheSearch); \nparams.set(&#039;Language&#039;, language) params.set(&#039;OrderBy&#039;, parameters.OrderBy); \nparams.set(&#039;PageNumber&#039;, parameters.PageNumber); \nparams.set(&#039;PageSize&#039;, parameters.PageSize); \nparams.set(&#039;Pages&#039;, parameters.Pages); \nparams.set(&#039;SearchText&#039;, parameters.SearchText); \nparams.set(&#039;RelatedId&#039;, parameters.RelatedId);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">But this new code doesn\u2019t work, because&nbsp;<em>HttpParams<\/em>&nbsp;is immutable, so the set method creates and returns a new instance of the params. The correct code is as follows:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst params = new HttpParams() \n\u00a0\u00a0\u00a0\u00a0.set(&#039;Direction&#039;, parameters.Direction === &#039;desc&#039; ? &#039;0&#039; : &#039;1&#039;)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;ElementCount&#039;, parameters.ElementCount)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;FieldsExcludedFromTheSearch&#039;, parameters.FieldsExcludedFromTheSearch)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;Language&#039;, language) .set(&#039;OrderBy&#039;, parameters.OrderBy)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;PageNumber&#039;, parameters.PageNumber)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;PageSize&#039;, parameters.PageSize)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;Pages&#039;, parameters.Pages)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;SearchText&#039;, parameters.SearchText)\n\u00a0\u00a0\u00a0\u00a0.set(&#039;RelatedId&#039;, parameters.RelatedId);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ok, it works fine, but I\u2019ve created 11 HttpParams instead of one. The problem can be solved basically as follows:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst direction: string = parameters.Direction === &#039;desc&#039; ? &#039;0&#039; : &#039;1&#039;; \nconst params = { \n\u00a0\u00a0\u00a0\u00a0Direction: &#x5B;direction], \n\u00a0\u00a0\u00a0\u00a0ElementCount: &#x5B;parameters.ElementCount], \n\u00a0\u00a0\u00a0\u00a0FieldsExcludedFromTheSearch: &#x5B;parameters.FieldsExcludedFromTheSearch], \n\u00a0\u00a0\u00a0\u00a0Language: &#x5B; language ], \n\u00a0\u00a0\u00a0\u00a0OrderBy: &#x5B; parameters.OrderBy ], \n\u00a0\u00a0\u00a0\u00a0PageNumber: &#x5B; parameters.PageNumber], \n\u00a0\u00a0\u00a0\u00a0PageSize: &#x5B; parameters.PageSize], \n\u00a0\u00a0\u00a0\u00a0Pages: &#x5B; parameters.Pages ], \n\u00a0\u00a0\u00a0\u00a0SearchText: &#x5B; parameters.SearchText ], \n\u00a0\u00a0\u00a0\u00a0RelatedId: &#x5B; parameters.RelatedId ] \n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">But the question remains: why? Why my objects should be immutable? And I think that this question is broader than the Angular HttpClient parameters .I discussed this matter with some friends, that are hobbyist functional programmers, but we have to move the discussion in the (programmer) philosophy world. In the functional programming, the object immutability is a need, because the mutability of the state of an object can cause side effects in the async world: you should lock the resource to prevent that another thread changes the state in the middle of your change. But if objects are immutable, every change to them would create new objects. Obviously, this mechanism creates problems in terms of memory allocated, and there are also some techniques to limit the resource requested: then the problem remains.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The official Angular documentation talks about the choice of the immutability in the interceptors topic, you can read something here:&nbsp;<a href=\"https:\/\/angular.io\/guide\/http#immutability\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/angular.io\/guide\/http#immutability<\/a>&nbsp;It makes sense, but in our example there isn\u2019t any problem of concurrency, so the use of immutable object creates only an unuseful memory waste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy coding!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>How do immutable objects influence our code?<\/p>\n","protected":false},"author":196716248,"featured_media":29326,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_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},"_wpas_customize_per_network":false},"categories":[688637524],"tags":[688637390,688637443],"class_list":["post-29332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-angular-en","tag-raptor-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin<\/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:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin\" \/>\n<meta property=\"og:description\" content=\"How do immutable objects influence our code?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-23T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T17:31:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"568\" \/>\n\t<meta property=\"og:image:height\" content=\"335\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michele Aponte\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michele Aponte\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/\"},\"author\":{\"name\":\"Michele Aponte\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\"},\"headline\":\"About HttpClient in Angular: immutable or not immutable, that is the question!\",\"datePublished\":\"2018-10-23T22:00:00+00:00\",\"dateModified\":\"2021-05-20T17:31:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/\"},\"wordCount\":325,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1\",\"keywords\":[\"Angular\",\"Raptor\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/\",\"name\":\"About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1\",\"datePublished\":\"2018-10-23T22:00:00+00:00\",\"dateModified\":\"2021-05-20T17:31:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1\",\"width\":568,\"height\":335},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"About HttpClient in Angular: immutable or not immutable, that is the question!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\",\"name\":\"Michele Aponte\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g\",\"caption\":\"Michele Aponte\"},\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/author\\\/michele-aponteblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin","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:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/","og_locale":"en_US","og_type":"article","og_title":"About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin","og_description":"How do immutable objects influence our code?","og_url":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/","og_site_name":"Blexin","article_published_time":"2018-10-23T22:00:00+00:00","article_modified_time":"2021-05-20T17:31:10+00:00","og_image":[{"width":568,"height":335,"url":"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","type":"image\/png"}],"author":"Michele Aponte","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michele Aponte","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/"},"author":{"name":"Michele Aponte","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"headline":"About HttpClient in Angular: immutable or not immutable, that is the question!","datePublished":"2018-10-23T22:00:00+00:00","dateModified":"2021-05-20T17:31:10+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/"},"wordCount":325,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","keywords":["Angular","Raptor"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/","url":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/","name":"About HttpClient in Angular: immutable or not immutable, that is the question! - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","datePublished":"2018-10-23T22:00:00+00:00","dateModified":"2021-05-20T17:31:10+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","width":568,"height":335},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/en\/blog-en\/about-httpclient-in-angular-immutable-or-not-immutable-that-is-the-question\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":"About HttpClient in Angular: immutable or not immutable, that is the question!"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/en\/#website","url":"https:\/\/blexin.com\/en\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005","name":"Michele Aponte","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g","caption":"Michele Aponte"},"url":"https:\/\/blexin.com\/en\/author\/michele-aponteblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98.png?fit=568%2C335&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7D6","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/users\/196716248"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/comments?post=29332"}],"version-history":[{"count":3,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29332\/revisions"}],"predecessor-version":[{"id":32020,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29332\/revisions\/32020"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/29326"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=29332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=29332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=29332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}