API tipada¶
O netbox_sdk inclui um cliente tipado versionado junto ao cliente bruto e à
fachada assíncrona.
Use typed_api() quando quiser:
- validação do corpo da requisição antes do HTTP
- validação do corpo da resposta depois do HTTP
- suporte de editor e type-checker para métodos de endpoint e modelos
- seleção explícita da versão do NetBox
Ponto de entrada¶
from netbox_sdk import typed_api
nb = typed_api(
"https://netbox.example.com",
token="your-token",
netbox_version="4.5",
)
Linhas de release suportadas:
4.64.54.44.3
Versões de patch normalizam para sua linha de release, então 4.4.10 seleciona o
cliente tipado 4.4.
A integração contínua exercita a suíte live-NetBox contra v4.6.0,
v4.5.9 e v4.5.8.
Exemplo¶
import asyncio
from netbox_sdk import typed_api
async def main() -> None:
nb = typed_api(
"https://netbox.example.com",
token="your-token",
netbox_version="4.5",
)
device = await nb.dcim.devices.get(42)
if device is not None:
print(device.name)
asyncio.run(main())
Comportamento de validação¶
- Corpos de requisição são validados antes do HTTP e levantam
TypedRequestValidationError - Corpos de resposta são validados depois do HTTP e levantam
TypedResponseValidationError - Versões não suportadas levantam
UnsupportedNetBoxVersionError
Artefatos gerados¶
O repositório inclui bundles OpenAPI versionados, modelos Pydantic gerados e bindings tipados de endpoints gerados para as linhas de release suportadas. Não é necessário executar geração de código localmente.
Módulos relevantes:
netbox_sdk.models.v4_6netbox_sdk.models.v4_5netbox_sdk.models.v4_4netbox_sdk.models.v4_3netbox_sdk.typed_versions.v4_6netbox_sdk.typed_versions.v4_5netbox_sdk.typed_versions.v4_4netbox_sdk.typed_versions.v4_3
Escolhendo entre camadas do SDK¶
- Use
NetBoxApiClientpara controle bruto de requisições - Use
api()para a fachada assíncrona ergonômica - Use
typed_api()para E/S validada por Pydantic versionada