Python 3.6+ tiene soporte para "type hints" opcionales.
Estos type hints son una nueva sintaxis, desde Python 3.6+, que permite declarar el tipo de una variable.
Usando las declaraciones de tipos para tus variables, los editores y otras herramientas pueden proveerte un soporte mejor.
Este es solo un tutorial corto sobre los Python type hints. Solo cubre lo mínimo necesario para usarlos con FastAPI... realmente es muy poco lo que necesitas.
Todo FastAPI está basado en estos type hints, lo que le da muchas ventajas y beneficios.
Pero, así nunca uses FastAPI te beneficiarás de aprender un poco sobre los type hints.
Nota
Si eres un experto en Python y ya lo sabes todo sobre los type hints, salta al siguiente capítulo.
Existen algunas estructuras de datos que pueden contener otros valores, como dict, list, set y tuple. Los valores internos pueden tener su propio tipo también.
Para declarar esos tipos y sub-tipos puedes usar el módulo estándar de Python typing.
Él existe específicamente para dar soporte a este tipo de type hints.
Pydantic es una library de Python para llevar a cabo validación de datos.
Tú declaras la "forma" de los datos mediante clases con atributos.
Cada atributo tiene un tipo.
Luego creas un instance de esa clase con algunos valores y Pydantic validará los valores, los convertirá al tipo apropiado (si ese es el caso) y te dará un objeto con todos los datos.
Y obtienes todo el soporte del editor con el objeto resultante.
FastAPI aprovecha estos type hints para hacer varias cosas.
Con FastAPI declaras los parámetros con type hints y obtienes:
Soporte en el editor.
Type checks.
...y FastAPI usa las mismas declaraciones para:
Definir requerimientos: desde request path parameters, query parameters, headers, bodies, dependencies, etc.
Convertir datos: desde el request al tipo requerido.
Validar datos: viniendo de cada request:
Generando errores automáticos devueltos al cliente cuando los datos son inválidos.
Documentar la API usando OpenAPI:
que en su caso es usada por las interfaces de usuario de la documentación automática e interactiva.
Puede que todo esto suene abstracto. Pero no te preocupes que todo lo verás en acción en el Tutorial - User Guide.
Lo importante es que usando los tipos de Python estándar en un único lugar (en vez de añadir más clases, decorator, etc.) FastAPI hará mucho del trabajo por ti.
Información
Si ya pasaste por todo el tutorial y volviste a la sección de los tipos, una buena referencia es la "cheat sheet" de mypy.