]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Portuguese translation for `docs/pt/docs/tutorial/encoder.md` (#5525)
authorfelipebpl <62957465+felipebpl@users.noreply.github.com>
Tue, 7 Feb 2023 13:09:00 +0000 (10:09 -0300)
committerGitHub <noreply@github.com>
Tue, 7 Feb 2023 13:09:00 +0000 (13:09 +0000)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
docs/pt/docs/tutorial/encoder.md [new file with mode: 0644]
docs/pt/mkdocs.yml

diff --git a/docs/pt/docs/tutorial/encoder.md b/docs/pt/docs/tutorial/encoder.md
new file mode 100644 (file)
index 0000000..bb04e9c
--- /dev/null
@@ -0,0 +1,42 @@
+# Codificador Compatível com JSON
+
+Existem alguns casos em que você pode precisar converter um tipo de dados (como um modelo Pydantic) para algo compatível com JSON (como um `dict`, `list`, etc).
+
+Por exemplo, se você precisar armazená-lo em um banco de dados.
+
+Para isso, **FastAPI** fornece uma função `jsonable_encoder()`.
+
+## Usando a função `jsonable_encoder`
+
+Vamos imaginar que você tenha um banco de dados `fake_db` que recebe apenas dados compatíveis com JSON.
+
+Por exemplo, ele não recebe objetos `datetime`, pois estes objetos não são compatíveis com JSON.
+
+Então, um objeto `datetime` teria que ser convertido em um `str` contendo os dados no formato  <a href="https://en.wikipedia.org/wiki/ISO_8601" class="external-link" target="_blank">ISO</a>.
+
+Da mesma forma, este banco de dados não receberia um modelo Pydantic (um objeto com atributos), apenas um `dict`.
+
+Você pode usar a função `jsonable_encoder` para resolver isso.
+
+A função recebe um objeto, como um modelo Pydantic e retorna uma versão compatível com JSON:
+
+=== "Python 3.6 e acima"
+
+    ```Python hl_lines="5  22"
+    {!> ../../../docs_src/encoder/tutorial001.py!}
+    ```
+
+=== "Python 3.10 e acima"
+
+    ```Python hl_lines="4  21"
+    {!> ../../../docs_src/encoder/tutorial001_py310.py!}
+    ```
+
+Neste exemplo, ele converteria o modelo Pydantic em um `dict`, e o `datetime` em um `str`.
+
+O resultado de chamar a função é algo que pode ser codificado com o padrão do Python <a href="https://docs.python.org/3/library/json.html#json.dumps" class="external-link" target="_blank">`json.dumps()`</a>.
+
+A função não retorna um grande `str` contendo os dados no formato JSON (como uma string). Mas sim, retorna uma estrutura de dados padrão do Python (por exemplo, um `dict`) com valores e subvalores compatíveis com JSON.
+
+!!! nota
+    `jsonable_encoder` é realmente usado pelo **FastAPI** internamente para converter dados. Mas também é útil em muitos outros cenários.
index 0858de0624183d91360d0a467ebb7b0b68bc7223..8161cf689c69e7cd6435359245fb31db4d3c03e8 100644 (file)
@@ -77,6 +77,7 @@ nav:
   - tutorial/request-forms.md
   - tutorial/request-forms-and-files.md
   - tutorial/handling-errors.md
+  - tutorial/encoder.md
   - Segurança:
     - tutorial/security/index.md
   - tutorial/background-tasks.md