Skip to content

Commit

Permalink
Deployed 318c23d with MkDocs version: 1.5.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dunossauro committed Feb 13, 2024
1 parent c0dec83 commit 421bbf1
Show file tree
Hide file tree
Showing 8 changed files with 51 additions and 51 deletions.
2 changes: 1 addition & 1 deletion 01/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1843,7 +1843,7 @@ <h2 id="conclusao">Conclusão</h2>

</span>
<nav>
dunossauro, Julio Formiga, Marcelo Machado, Igor Ferreira, Lucas Mendes, Adorilson Bezerra
dunossauro, Marcelo Machado, Julio Formiga, Igor Ferreira, Lucas Mendes, Adorilson Bezerra
</nav>
</span>

Expand Down
10 changes: 5 additions & 5 deletions 02/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1196,7 +1196,7 @@
<hr>
<p>Objetivos dessa aula:</p>
<ul>
<li>Criar uma básica teórica sobre desenvolvimento web</li>
<li>Criar uma base teórica sobre desenvolvimento web</li>
<li>Apresentar o protocolo HTTP</li>
<li>Introduzir os conceitos de APIs JSON</li>
<li>Apresentar o OpenAPI</li>
Expand Down Expand Up @@ -1308,7 +1308,7 @@ <h4 id="url">URL</h4>
<p>Ao acessarmos via navegador a URL <code>http://127.0.0.1:8000</code>, estamos acessando o servidor via protocolo <code>HTTP</code>, no endereço do nosso próprio computador, na porta <code>8000</code>, solicitando o recurso <code>/</code>.</p>
<h4 id="http">HTTP</h4>
<p>Quando o cliente inicia uma requisição para um endereço na rede, isso é feito via um protocolo e direcionado ao servidor do recurso. Em aplicações web, a maioria da comunicação ocorre via protocolo HTTP ou sua versão segura, o HTTPS.</p>
<p>HTTP, ou <em>Hypertext Transfer Protocol</em> (Protocolo de Transferência de Hipertexto), é o protocolo fundamental na web para a transferência de dados e comunicação entre clientes e servidores. Ele baseia-se no modelo de requisição-resposta: onde cliente faz uma requisição ao servidor, que responde a essa requisição. Essas requisições e respostas são formatadas conforme as regras do protocolo HTTP.</p>
<p>HTTP, ou <em>Hypertext Transfer Protocol</em> (Protocolo de Transferência de Hipertexto), é o protocolo fundamental na web para a transferência de dados e comunicação entre clientes e servidores. Ele baseia-se no modelo de requisição-resposta: onde o cliente faz uma requisição ao servidor, que responde a essa requisição. Essas requisições e respostas são formatadas conforme as regras do protocolo HTTP.</p>
<h5 id="mensagens">Mensagens</h5>
<p>No contexto do HTTP, tanto requisições quanto respostas são referidas como <strong>mensagens</strong>. As mensagens HTTP na versão 1 têm uma estrutura textual semelhante ao seguinte exemplo.</p>
<p>Um exemplo de mensagem HTTP enviada pelo cliente:</p>
Expand Down Expand Up @@ -1558,7 +1558,7 @@ <h3 id="contratos-em-apis-json">Contratos em APIs JSON</h3>
<p>Quando falamos sobre o compartilhamento de JSON entre cliente e servidor, é crucial estabelecer um entendimento mútuo sobre a estrutura dos dados que serão trocados. A este entendimento, denominamos <em>schema</em>, que atua como um contrato definindo a forma e o conteúdo dos dados trafegados.</p>
<p>O schema de uma API desempenha um papel fundamental ao assegurar que ambos, cliente e servidor, estejam alinhados quanto à estrutura dos dados. Este "contrato" especifica:</p>
<ul>
<li>Campos de Dados Esperados: quais campos são esperados na mensagem JSON, incluindo nomes de campos e tipos de dados (como strings, números, boolianos).</li>
<li>Campos de Dados Esperados: quais campos são esperados na mensagem JSON, incluindo nomes de campos e tipos de dados (como strings, números, booleanos).</li>
<li>Restrições Adicionais: como validações para tamanhos de strings, formatos de números e outros tipos de validação de dados.</li>
<li>Estrutura de Objetos Aninhados: como os objetos são estruturados dentro do JSON, incluindo arrays e sub-objetos.</li>
</ul>
Expand Down Expand Up @@ -1682,7 +1682,7 @@ <h2 id="conclusao">Conclusão</h2>
<span class="md-icon" title="Última atualização">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 7, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 5, 2024</span>
</span>


Expand All @@ -1697,7 +1697,7 @@ <h2 id="conclusao">Conclusão</h2>

</span>
<nav>
dunossauro, Julio Formiga, Rodrigo Vieira
dunossauro, Marcelo Machado, Julio Formiga, Rodrigo Vieira
</nav>
</span>

Expand Down
40 changes: 20 additions & 20 deletions 03/index.html

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions 04/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@ <h3 id="o-que-e-um-orm-e-por-que-usamos-um">O que é um ORM e por que usamos um?
<p>Abstração de banco de dados: ORMs permitem que você mude de um tipo de banco de dados para outro com poucas alterações no código.</p>
</li>
<li>
<p>Segurança: ORMs lidam geralmente com escapar de consultas e prevenir injeções SQL, um tipo comum de vulnerabilidade de segurança.</p>
<p>Segurança: ORMs lidam geralmente com escapagem de consultas e para prevenir injeções SQL, um tipo comum de vulnerabilidade de segurança.</p>
</li>
<li>
<p>Eficiência no desenvolvimento: ORMs podem gerar automaticamente esquemas, realizar migrações e outras tarefas que seriam demoradas para fazer manualmente.</p>
Expand All @@ -1044,7 +1044,7 @@ <h3 id="configuracoes-de-ambiente-e-os-12-fatores">Configurações de ambiente e
<p>Além disso, expor credenciais de banco de dados e outras informações sensíveis no código-fonte é uma prática de segurança ruim. Se esse código fosse comprometido, essas informações poderiam ser usadas para acessar e manipular seus recursos.</p>
<p>Por isso, usaremos o <code>pydantic-settings</code> para gerenciar nossas configurações de ambiente. A biblioteca permite que você defina configurações em arquivos separados ou variáveis de ambiente e acesse-as de uma maneira estruturada e segura em seu código.</p>
<p>Isso está alinhado com a metodologia dos 12 fatores, um conjunto de melhores práticas para desenvolvimento de aplicações modernas. O terceiro fator, "Config", afirma que as configurações que variam entre os ambientes devem ser armazenadas no ambiente e não no código.</p>
<p>Agora que entendemos melhor esses conceitos, começaremos instalando as bibliotecas que iremos usar. O primeiro passo é instalar o SQLAlchemy, um ORM que nos permite trabalhar com bancos de dados SQL de maneira Pythonic. Além disso, o Alembic, que é uma ferramenta de migração de banco de dados, funciona muito bem com o SQLAlchemy e nos ajudará a gerenciar as alterações do esquema do nosso banco de dados.</p>
<p>Agora que entendemos melhor esses conceitos, começaremos instalando as bibliotecas que iremos usar. O primeiro passo é instalar o SQLAlchemy, um ORM que nos permite trabalhar com bancos de dados SQL de maneira Pythonica. Além disso, o Alembic, que é uma ferramenta de migração de banco de dados, funciona muito bem com o SQLAlchemy e nos ajudará a gerenciar as alterações do esquema do nosso banco de dados.</p>
<div class="language-shell highlight"><span class="filename">$ Execução no terminal!</span><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>poetry<span class="w"> </span>add<span class="w"> </span>sqlalchemy
</span></code></pre></div>
<p>Além disso, para evitar a escrita de configurações do banco de dados diretamente no código-fonte, usaremos o <code>pydantic-settings</code>. Este pacote nos permite gerenciar as configurações do nosso aplicativo de uma maneira mais segura e estruturada.</p>
Expand Down Expand Up @@ -1272,7 +1272,7 @@ <h2 id="instalando-o-alembic-e-criando-a-primeira-migracao">Instalando o Alembic
</span><span id="__span-12-21"><a id="__codelineno-12-21" name="__codelineno-12-21" href="#__codelineno-12-21"></a> ├── test_app.py
</span><span id="__span-12-22"><a id="__codelineno-12-22" name="__codelineno-12-22" href="#__codelineno-12-22"></a> └── test_db.py
</span></code></pre></div>
<p>No arquivo <code>alembic.ini</code>: ficam as configurações gerais das nossas migrações. Na pasta <code>migrations</code> foram criados um arquivo chamado <code>env.py</code>, esse arquivo é responsável por como as migrações serão feitas e o arquivo <code>script.py.mako</code> é um template para as novas migrações.</p>
<p>No arquivo <code>alembic.ini</code>: ficam as configurações gerais das nossas migrações. Na pasta <code>migrations</code> foram criados um arquivo chamado <code>env.py</code>, esse arquivo é responsável por como as migrações serão feitas, e o arquivo <code>script.py.mako</code> é um template para as novas migrações.</p>
<h3 id="criando-uma-migracao-automatica">Criando uma migração automática</h3>
<p>Com o Alembic devidamente instalado e iniciado, agora é o momento de gerar nossa primeira migração. Mas, antes disso, precisamos garantir que o Alembic consiga acessar nossas configurações e modelos corretamente. Para isso, faremos algumas alterações no arquivo <code>migrations/env.py</code>.</p>
<p>Neste arquivo, precisamos:</p>
Expand Down Expand Up @@ -1408,7 +1408,7 @@ <h2 id="commit">Commit</h2>
<p>Finalmente, enviaremos as mudanças para o repositório remoto:</p>
<div class="language-shell highlight"><span class="filename">$ Execução no terminal!</span><pre><span></span><code><span id="__span-29-1"><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>git<span class="w"> </span>push
</span></code></pre></div>
<p>E pronto! As mudanças que fizemos foram salvas no histórico do Git e agora estão disponíveis no git.</p>
<p>E pronto! As mudanças que fizemos foram salvas no histórico do Git e agora estão disponíveis no GitHub.</p>
<h2 id="conclusao">Conclusão</h2>
<p>Nesta aula, demos passos significativos para preparar nosso projeto FastAPI para interagir com um banco de dados. Começamos definindo nosso primeiro modelo de dados, o <code>User</code>, utilizando o SQLAlchemy. Além disso, conforme as práticas de Desenvolvimento Orientado por Testes (TDD), implementamos um teste para assegurar que a funcionalidade de criação de um novo usuário no banco de dados esteja operando corretamente.</p>
<p>Avançamos para configurar o ambiente de desenvolvimento, onde estabelecemos um arquivo <code>.env</code> para armazenar nossa <code>DATABASE_URL</code> e ajustamos o SQLAlchemy para utilizar essa URL. Complementarmente, incluímos o arquivo do banco de dados ao <code>.gitignore</code> para evitar que seja rastreado pelo controle de versão.</p>
Expand All @@ -1434,7 +1434,7 @@ <h2 id="conclusao">Conclusão</h2>
<span class="md-icon" title="Última atualização">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 7, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 5, 2024</span>
</span>


Expand All @@ -1449,7 +1449,7 @@ <h2 id="conclusao">Conclusão</h2>

</span>
<nav>
dunossauro, Julio Formiga
dunossauro, Marcelo Machado, Julio Formiga
</nav>
</span>

Expand Down
8 changes: 4 additions & 4 deletions 05/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1342,7 +1342,7 @@ <h2 id="modificando-o-endpoint-put-users">Modificando o Endpoint PUT /users</h2>
</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>fast_zero/app.py:7:55:<span class="w"> </span>F401<span class="w"> </span><span class="o">[</span>*<span class="o">]</span><span class="w"> </span><span class="sb">`</span>fast_zero.schemas.UserDB<span class="sb">`</span><span class="w"> </span>imported<span class="w"> </span>but<span class="w"> </span>unused
</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>Found<span class="w"> </span><span class="m">1</span><span class="w"> </span>error.
</span></code></pre></div>
<p>Isso ocorre porque a rota PUT era a única que estava utilizando UserDB, e agora que modificamos esta rota, podemos remover UserDB dos nossos e também excluir sua definição no arquivo <code>schemas.py</code></p>
<p>Isso ocorre porque a rota PUT era a única que estava utilizando UserDB, e agora que modificamos esta rota, podemos remover UserDB dos nossos imports e também excluir sua definição no arquivo <code>schemas.py</code></p>
<details class="note">
<summary>Sobre o arquivo <code>schemas.py</code></summary>
<p>Caso fique em dúvida sobre o que remover, seu arquivo <code>schemas.py</code> deve estar parecido com isso, após a remoção de <code>UserDB</code>:</p>
Expand Down Expand Up @@ -1443,7 +1443,7 @@ <h2 id="commit">Commit</h2>
<p>Com isso, terminamos a atualização dos nossos endpoints para usar o nosso banco de dados real.</p>
<h2 id="exercicios">Exercícios</h2>
<ol>
<li>Escrever um teste para o enpoint de POST (create_user) que contemple o cenário onde o username já foi registrado. Validando o erro <code>400</code>;</li>
<li>Escrever um teste para o endpoint de POST (create_user) que contemple o cenário onde o username já foi registrado. Validando o erro <code>400</code>;</li>
<li>Atualizar os testes criados nos exercícios 1 e 2 da <a href="../03/#exercicios" target="_blank">aula 03</a> para suportarem o banco de dados;</li>
<li>Implementar o banco de dados para o endpoint de listagem por id, criado no exercício 3 da <a href="../03/#exercicios" target="_blank">aula 03</a>.</li>
</ol>
Expand Down Expand Up @@ -1472,7 +1472,7 @@ <h2 id="conclusao">Conclusão</h2>
<span class="md-icon" title="Última atualização">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 8, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 12, 2024</span>
</span>


Expand All @@ -1487,7 +1487,7 @@ <h2 id="conclusao">Conclusão</h2>

</span>
<nav>
dunossauro, ivansantiagojr
dunossauro, Marcelo Machado, ivansantiagojr
</nav>
</span>

Expand Down
2 changes: 1 addition & 1 deletion search/search_index.json

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,72 +2,72 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://fastapidozero.dunossauro.com/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/01/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/02/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/03/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/04/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/05/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/06/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/07/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/08/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/09/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/10/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/11/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/12/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://fastapidozero.dunossauro.com/13/</loc>
<lastmod>2024-02-08</lastmod>
<lastmod>2024-02-13</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>
Binary file modified sitemap.xml.gz
Binary file not shown.

0 comments on commit 421bbf1

Please sign in to comment.