{"id":29324,"date":"2018-10-24T00:00:00","date_gmt":"2018-10-23T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=29324"},"modified":"2021-01-13T09:40:51","modified_gmt":"2021-01-13T08:40:51","slug":"parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/","title":{"rendered":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema!"},"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=\"29325\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/attachment\/7b354a8e-9b62-4bc2-b529-0cd5a2863a98\/\" 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-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-29325\" 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\">Durante il porting di Raptor.UI (il front-end Angular&nbsp;del nostro framework), abbiamo usato il nuovo&nbsp;<em>HttpClient<\/em>&nbsp;Angular (come discusso&nbsp;<a href=\"http:\/\/www.tolist.net\/Article\/Il-nuovo-HttpClient-in-Angular-5-18\" target=\"_blank\" rel=\"noreferrer noopener\">qui<\/a>), senza, in apparenza, nessuna breaking change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Andando pi\u00f9 nel dettaglio, abbiamo convertito\u00a0<em>UrlSearchParams<\/em>\u00a0del modulo\u00a0<em>@angular\/http<\/em>\u00a0con\u00a0<em>HttpParams<\/em>\u00a0di\u00a0<em>@angular\/common\/http<\/em>. Il codice\u00a0era il seguente:<\/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\">Che abbiamo convertito nel seguente codice senza errori di compilazione:<\/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\">Peccato che\u00a0per\u00f2 non funzioni, perch\u00e9\u00a0<em>HttpParams<\/em>\u00a0\u00e8 immutabile, quindi il metodo\u00a0<em>set<\/em>\u00a0crea\u00a0e restituisce una nuova istanza dei parametri. Il codice corretto \u00e8 il seguente:<\/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, funziona, ma abbiamo creato 11 istanze di\u00a0<em>HttpParams<\/em>\u00a0invece di una\u2026 Il problema pu\u00f2 essere facilmente\u00a0risolto come segue:<\/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\">La domanda rimane: perch\u00e9? Perch\u00e9 i miei&nbsp;oggetti&nbsp;dovrebbero essere&nbsp;immutabili? E la questione&nbsp;va al di l\u00e0 dei&nbsp;parametri del&nbsp;HttpClient di Angular.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ho discusso&nbsp;di questa cosa con alcuni amici, che&nbsp;per hobby si occupano anche di programmazione funzionale, ma dobbiamo spostare la discussione nel mondo della filosofia (dei programmatori).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella programmazione funzionale, l&#8217;immutabilit\u00e0 degli oggetti \u00e8 una necessit\u00e0, perch\u00e9&nbsp;la mutabilit\u00e0 dello stato di un oggetto pu\u00f2 causare effetti collaterali nel mondo asincrono: dovremmo bloccare l&#8217;accesso alle risorse per prevenire che altri thread cambino lo stato dell&#8217;oggeto durante le nostre modifiche. Ma se gli oggetti sono immutabili, ogni cambiamento ad essi creerebbe nuovi oggetti. Ovviamente questo meccanismo crea problemi in termini di memoria allocata, ci sono alcune tecniche per limitare le risorse richieste, ma il problema rimane.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La documentazione ufficiale di Angular parla della scelta dell&#8217;immutabilit\u00e0 quando&nbsp;illustra&nbsp;gli interceptors, potete leggerlo qui:&nbsp;<a href=\"https:\/\/angular.io\/guide\/http#immutability\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/angular.io\/guide\/http#immutability<\/a>. La cosa ha senso in quel caso, ma nel nostro esempio non ci sono problemi di concorrenza, quindi l&#8217;uso di oggetti immutabili crea solo un inutile spreco di memoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy coding!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Come influenzano il nostro codice gli oggetti immutabili?<\/p>\n","protected":false},"author":196716248,"featured_media":29325,"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_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,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637387,688637442],"class_list":["post-29324","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-angular","tag-raptor"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - 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\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - Blexin\" \/>\n<meta property=\"og:description\" content=\"Come influenzano il nostro codice gli oggetti immutabili?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/\" \/>\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-01-13T08:40:51+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=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michele Aponte\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/\"},\"author\":{\"name\":\"Michele Aponte\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\"},\"headline\":\"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema!\",\"datePublished\":\"2018-10-23T22:00:00+00:00\",\"dateModified\":\"2021-01-13T08:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/\"},\"wordCount\":318,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#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\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/\",\"name\":\"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#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-01-13T08:40:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#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\\\/it\\\/blog\\\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/cdc5540c3b6edcacd8d760669e797005\",\"name\":\"Michele Aponte\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\\\/it\\\/author\\\/michele-aponteblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - 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\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/","og_locale":"it_IT","og_type":"article","og_title":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - Blexin","og_description":"Come influenzano il nostro codice gli oggetti immutabili?","og_url":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/","og_site_name":"Blexin","article_published_time":"2018-10-23T22:00:00+00:00","article_modified_time":"2021-01-13T08:40:51+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":{"Scritto da":"Michele Aponte","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/"},"author":{"name":"Michele Aponte","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"headline":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema!","datePublished":"2018-10-23T22:00:00+00:00","dateModified":"2021-01-13T08:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/"},"wordCount":318,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#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":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/","url":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/","name":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema! - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#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-01-13T08:40:51+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#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\/it\/blog\/parlando-di-httpclient-in-angular-immutabile-o-non-immutabile-questo-e-il-problema\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Parlando di HttpClient in Angular: immutabile o non immutabile, questo \u00e8 il problema!"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005","name":"Michele Aponte","image":{"@type":"ImageObject","inLanguage":"it-IT","@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\/it\/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-7CY","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716248"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=29324"}],"version-history":[{"count":4,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29324\/revisions"}],"predecessor-version":[{"id":29331,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29324\/revisions\/29331"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/29325"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=29324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=29324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=29324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}