Nova feature:
- Permite a recuperação do objeto completo após um insert, de modo que uma rota de post possa ecoar o objeto recém criado (e não apenas os campos relativos ao DTO de retorno). A ideia aqui é permitir um comportamento mais semelhante ao esperado por algumas bibliotecas de front-end (que esperam eco do objeto, no caso de um POST).
- É importante destacar que apenas os campos resumo são considerados nesse retorno.
- Para usar, é preciso marcar a flag `retrieve_after_insert` como `True`, na declaração do seu método `PostRoute` em seu controller.
Breaking Change:
Foi adicionado um parâmetro novo no insert do rest lib. Então caso esse método esteja sobrescrito, ele irá dar erro ao usar a nova versão do rest lib.
Anteriormente a definição do método era
python
def insert(
self,
dto: DTOBase,
aditional_filters: Dict[str, Any] = None,
custom_before_insert: Callable = None,
custom_after_insert: Callable = None,
) -> DTOBase:
e agora é:
python
def insert(
self,
dto: DTOBase,
aditional_filters: Dict[str, Any] = None,
custom_before_insert: Callable = None,
custom_after_insert: Callable = None,
retrieve_after_insert: bool = False,
) -> DTOBase:
Se o método estiver sobrescrito é necessário adicionar o novo parâmetro retrieve_after_insert na sobrescrição.
—----------------------------------------------------------------------------------------------------------------------
Em vez disso é possível fazer uma proteção ao fazer a sobrescrição, usando o parâmetro kwargs, da seguinte forma :
python
def insert(
self,
dto: EntregaDTO,
**kwargs
) -> DTOBase:
e para passar esse parâmetro para um outro método é desta forma:
python
self._save(
insert=True,
dto=dto,
manage_transaction=False,
partial_update=False,
**kwargs
)
Definindo a sobrescrição dessa forma protege contra qualquer parâmetro opcional futuro que seja adicionado no insert do rest lib