Expand
A Kruzer oferece o parâmetro de query _expand em suas rotas de listagem e detalhamento para facilitar a expansão de atributos referenciados por identificadores (como ObjectId). Esse recurso permite que os dados relacionados sejam automaticamente populados na resposta, evitando múltiplas chamadas à API e otimizando o consumo dos dados.
O que é expansão?
Em diversos modelos da Kruzer, certos atributos fazem referência a documentos de outras entidades, armazenados apenas como identificadores. Ao utilizar _expand, é possível solicitar que esses atributos sejam substituídos por seus documentos completos no momento da resposta.
Exemplo sem expansão:
GET /orders
Resposta:
[
{
"id": "abc123",
"customer_id": "5f7d3b8a9a3c1c1b9c2b7e4e",
"product_id": "6a9e8b7c1d2e4f5a6b7c8d9e"
}
]
Exemplo com expansão de customer_id:
GET /orders?_expand=customer_id
Resposta:
[
{
"id": "abc123",
"customer_id": {
"id": "5f7d3b8a9a3c1c1b9c2b7e4e",
"name": "João da Silva",
"email": "joao@example.com"
},
"product_id": "6a9e8b7c1d2e4f5a6b7c8d9e"
}
]
Expansão Múltipla
Você também pode expandir múltiplos atributos de uma só vez, separando-os por vírgula:
GET /orders?_expand=customer_id,product_id
Essa abordagem é ideal para quando diferentes atributos de uma entidade fazem referência a documentos que você deseja acessar de forma imediata e completa.
Quando usar _expand
Use o _expand quando:
- For necessário exibir dados de entidades relacionadas no mesmo contexto.
- Você deseja evitar múltiplas requisições para buscar entidades referenciadas.
- A resposta da API será usada diretamente para exibição ou enriquecimento de dados no frontend.
Considerações
- Apenas campos previamente configurados como expansíveis na definição do schema serão retornados com seus dados populados.
- A expansão pode afetar a performance em grandes volumes de dados, use com critério.
- A expansão é aplicada após a filtragem e paginação.
Com o uso de _expand, a Kruzer oferece uma maneira prática e eficiente de lidar com relacionamentos entre entidades, garantindo respostas mais completas e reduzindo a complexidade das integrações.
Copyright © 2025 kruzer | All Rights Reserved