<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mariana Ramacciotti</title>
    <description>The latest articles on DEV Community by Mariana Ramacciotti (@marianaramacciotti).</description>
    <link>https://dev.to/marianaramacciotti</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F654562%2Ffdf85358-e0f9-4c5c-aa94-d90587e44bb2.jpg</url>
      <title>DEV Community: Mariana Ramacciotti</title>
      <link>https://dev.to/marianaramacciotti</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marianaramacciotti"/>
    <language>en</language>
    <item>
      <title>Afinal, o que é S.O.L.I.D?</title>
      <dc:creator>Mariana Ramacciotti</dc:creator>
      <pubDate>Tue, 12 Sep 2023 16:19:35 +0000</pubDate>
      <link>https://dev.to/marianaramacciotti/afinal-o-que-e-solid-2oe3</link>
      <guid>https://dev.to/marianaramacciotti/afinal-o-que-e-solid-2oe3</guid>
      <description>&lt;p&gt;💡 Neste &lt;a href="https://www.linkedin.com/pulse/afinal-o-que-%25C3%25A9-solid-mariana-ramacciotti/?trackingId=4k5vimYeQtCFdzrYlZm%2Fqg%3D%3D"&gt;artigo&lt;/a&gt; desvendamos os segredos por trás desse conjunto de princípios que promovem a robustez, manutenibilidade e escalabilidade do seu código!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Advogando a favor da queridíssima Fetch API</title>
      <dc:creator>Mariana Ramacciotti</dc:creator>
      <pubDate>Wed, 23 Jun 2021 13:45:16 +0000</pubDate>
      <link>https://dev.to/marianaramacciotti/advogando-a-favor-da-queridissima-fetch-api-ajf</link>
      <guid>https://dev.to/marianaramacciotti/advogando-a-favor-da-queridissima-fetch-api-ajf</guid>
      <description>&lt;h1&gt;
  
  
  Eita, quanto código!
&lt;/h1&gt;

&lt;p&gt;Então você, assim como eu (novata nesse assunto) estava seguindo algum tutorial na internet explicando como fazemos &lt;strong&gt;requisições para o servidor&lt;/strong&gt;. Entretanto, contudo, todavia; o método utilizado pelo professor era com &lt;strong&gt;XMLHttpRequest&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Se você olhou para aquele código enorme e pensou "puxa vida!", esse post é para você!&lt;/p&gt;

&lt;h2&gt;
  
  
  Voltando um pouquinho: Como requisições eram feitas antigamente?
&lt;/h2&gt;

&lt;p&gt;Antigamente o carregamento da página na web era simples: você enviaria uma solicitação de um site a um servidor e, desde que nada desse errado, os ativos que formaram a página da web seriam baixados e exibidos em seu computador.&lt;/p&gt;

&lt;p&gt;O problema com este modelo é que &lt;strong&gt;sempre que você deseja atualizar qualquer parte da página&lt;/strong&gt; (por exemplo, para exibir um novo conjunto de produtos) você precisa &lt;strong&gt;carregar a página inteira novamente&lt;/strong&gt;. Que experiência de usuário esquisita, não? &lt;/p&gt;

&lt;p&gt;Se você por acaso você já saiu de um site porque ficou irritado que o mesmo demorou 5 segundos pra carregar, provavelmente você não curtiria se um site ficasse recarregando por completo para atualizar né? &lt;/p&gt;

&lt;h2&gt;
  
  
  Ah, a tecnologia...
&lt;/h2&gt;

&lt;p&gt;Isso levou à criação de tecnologias que &lt;strong&gt;permitem que páginas da web solicitem pequenos blocos de dados&lt;/strong&gt; (como HTML , XML , JSON ou texto simples) e &lt;strong&gt;os exibam apenas quando necessário&lt;/strong&gt;, ajudando a resolver o problema.&lt;/p&gt;

&lt;p&gt;Isso é obtido usando APIs como (se prepara):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XMLHttpRequestchatinhooutdatedninguémseimporta ou...&lt;/li&gt;
&lt;li&gt;A belíssima lindíssima maravilhosa &lt;strong&gt;API Fetch&lt;/strong&gt; dona da minha vida. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essas tecnologias permitem que as páginas da web tratem diretamente de fazer solicitações HTTP para &lt;strong&gt;recursos específicos disponíveis em um servidor&lt;/strong&gt; e &lt;strong&gt;formatar os dados resultantes&lt;/strong&gt; conforme necessário antes de serem exibidos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde encontro isso funcionando na prática?
&lt;/h2&gt;

&lt;p&gt;Entre em um site que você adora. Vou assumir que você curte um Netflixzinho de domingo, enrolado nas cobertas tomando chocolate quente... &lt;/p&gt;

&lt;p&gt;Dormindo no meio da série porque você está SUPER confort- &lt;em&gt;c-ham&lt;/em&gt; enfim. &lt;/p&gt;

&lt;p&gt;Agora no campo de busca, escreva o nome de uma série. Mas tem que ser boa, hein? Escreve lá... &lt;strong&gt;Brooklyn Nine-Nine&lt;/strong&gt;; uma das melhores séries que existem e só minha opinião importa.&lt;/p&gt;

&lt;p&gt;Assim que você clicar no botão "Procurar", perceba que o conteúdo principal mudará, mas a maioria das informações ao redor, como cabeçalho, rodapé, menu de navegação, etc., &lt;strong&gt;permanecerão as mesmas&lt;/strong&gt;. Isso é o que? Isso é Fantástico, pois: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;As atualizações de página são muito mais rápidas e você não precisa esperar a atualização da página, o que significa que o site parece mais rápido e ágil.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Menos dados são baixados em cada atualização, o que significa menos largura de banda desperdiçada. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Antigamente, essa técnica era conhecida como &lt;strong&gt;AJAX&lt;/strong&gt;, porque &lt;strong&gt;utilizava a XMLHttpRequest para solicitar dados XML&lt;/strong&gt; (blergh). Normalmente, &lt;em&gt;esse não é o caso hoje em dia&lt;/em&gt; (amém), mas o resultado ainda é o mesmo e o termo "Ajax" ainda é frequentemente usado para descrever a técnica.&lt;/p&gt;

&lt;p&gt;Resumindo: Ajax é o tio que utiliza uma API da web como proxy para solicitar dados de maneira mais inteligente, em vez de apenas fazer o navegador recarregar a página inteira. Pois muito que bem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como seria solicitar dados com essa tal de api fetch?
&lt;/h2&gt;

&lt;p&gt;A API Fetch é basicamente uma &lt;strong&gt;substituição moderna do XHR&lt;/strong&gt;; ela foi introduzido em navegadores recentemente para tornar as solicitações assíncronas de HTTP &lt;strong&gt;mais fáceis de fazer&lt;/strong&gt; em JavaScript, tanto para desenvolvedores quanto para outras APIs que se baseiam no Fetch.&lt;/p&gt;

&lt;p&gt;"Será que a fetch é tão boa assim?" &lt;strong&gt;observe&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;

   &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;

   &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Que colírio para os olhos, que monumento abençoado, que visão paradisíaca, que resposta para todas as perguntas sobre a complexidade da psiquê humana... Agora que já terminei de elogiar, vamos explicar o que cada trem desse faz.&lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;fetch(url)&lt;/strong&gt;: Invocamos o método fetch passando a URL do recurso que queremos buscar.&lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;then()&lt;/strong&gt;: Retorna uma promessa. Se a promessa retornada for resolve, a função dentro do método then() é executada. Essa função contém o código para lidar com os dados recebidos da API.&lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;catch()&lt;/strong&gt;: A API chamada usando fetch() pode estar inoperante ou outros erros podem ocorrer. Se isso acontecer, a promessa reject será retornada. O método catch é usado para lidar com reject. O código dentro de catch() será executado se um erro ocorrer ao chamar a API escolhida.&lt;/p&gt;

&lt;p&gt;E é isto. É isso. É SÓ isso. &lt;/p&gt;

&lt;p&gt;Para você que ficou coçando a cabeça (como eu) com a &lt;em&gt;XMLHttpRequestNinguémSeImporta&lt;/em&gt;, temos uma solução muito mais viável e fácil de aplicar. &lt;/p&gt;

&lt;p&gt;No código acima, você está chamando a Fetch API e passando o URL para o servidor. Então, uma resposta é recebida. No entanto, a resposta recebida &lt;strong&gt;não vem formatada em JSON&lt;/strong&gt;, ou seja, não vem conhecidíssima como a noite de París ou poderosíssima como a espada de um samurai. &lt;/p&gt;

&lt;p&gt;Ela vem como um objeto com uma série de métodos que podem ser usados dependendo do que você quer fazer com as informações. &lt;/p&gt;

&lt;p&gt;Então vamos converter o objeto retornado em JSON; usando um método chamado (se prepara)... &lt;strong&gt;json()&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;GET&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="c1"&gt;// O início de um sonho&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;erro&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;erro&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// Deu tudo errado&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O GET informa o que queremos fazer ao acessar aqueles dados. Depois temos nossos dois casos como mencionado nos comentários: o de sucesso e o de falha. &lt;/p&gt;

&lt;p&gt;É isto! Espero que esse post tenha aguçado sua curiosidade para ler mais à respeito :]&lt;/p&gt;

&lt;p&gt;Fonte de Pesquisa: &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data"&gt;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
