Até agora, você tem usado tipos de dados comuns, tais como:
int
float
str
bool
Mas você também pode usar tipos de dados mais complexos.
E você ainda terá os mesmos recursos que viu até agora:
- Ótimo suporte do editor.
- Conversão de dados das requisições recebidas.
- Conversão de dados para os dados da resposta.
- Validação de dados.
- Anotação e documentação automáticas.
Aqui estão alguns dos tipos de dados adicionais que você pode usar:
UUID
:- Um "Identificador Universalmente Único" padrão, comumente usado como ID em muitos bancos de dados e sistemas.
- Em requisições e respostas será representado como uma
str
.
datetime.datetime
:- O
datetime.datetime
do Python. - Em requisições e respostas será representado como uma
str
no formato ISO 8601, exemplo:2008-09-15T15:53:00+05:00
.
- O
datetime.date
:- O
datetime.date
do Python. - Em requisições e respostas será representado como uma
str
no formato ISO 8601, exemplo:2008-09-15
.
- O
datetime.time
:- O
datetime.time
do Python. - Em requisições e respostas será representado como uma
str
no formato ISO 8601, exemplo:14:23:55.003
.
- O
datetime.timedelta
:- O
datetime.timedelta
do Python. - Em requisições e respostas será representado como um
float
de segundos totais. - O Pydantic também permite representá-lo como uma "codificação ISO 8601 diferença de tempo", cheque a documentação para mais informações.
- O
frozenset
:- Em requisições e respostas, será tratado da mesma forma que um
set
:- Nas requisições, uma lista será lida, eliminando duplicadas e convertendo-a em um
set
. - Nas respostas, o
set
será convertido para umalist
. - O esquema gerado vai especificar que os valores do
set
são unicos (usando ouniqueItems
do JSON Schema).
- Nas requisições, uma lista será lida, eliminando duplicadas e convertendo-a em um
- Em requisições e respostas, será tratado da mesma forma que um
bytes
:- O
bytes
padrão do Python. - Em requisições e respostas será representado como uma
str
. - O esquema gerado vai especificar que é uma
str
com o "formato"binary
.
- O
Decimal
:- O
Decimal
padrão do Python. - Em requisições e respostas será representado como um
float
.
- O
- Você pode checar todos os tipos de dados válidos do Pydantic aqui: Tipos de dados do Pydantic.
Aqui está um exemplo de operação de rota com parâmetros utilizando-se de alguns dos tipos acima.
{!../../../docs_src/extra_data_types/tutorial001.py!}
Note que os parâmetros dentro da função tem seu tipo de dados natural, e você pode, por exemplo, realizar manipulações normais de data, como:
{!../../../docs_src/extra_data_types/tutorial001.py!}