Segurança além dos tipos
Quando um usuário causa mutações como criar, atualizar ou excluir recursos, é importante que essas mudanças sejam refletidas na aplicação. Um cache simples de publicação que não tem nenhum conhecimento das estruturas de dados exigiria refazer o fetch de qualquer endpoint que fosse alterado. Isso reduziria o desempenho e colocaria uma carga extra no backend.
No entanto, como em muitos outros casos, um cache normalizado - que conhece as relações entre os recursos - é capaz de manter todos os dados consistentes e atualizados sem nenhum novo fetch.
Update
O Reactive Data Client usa as definições de schema para entender como normalizar os dados de resposta em
uma entity table e uma result table. Isso significa, é claro, que existe sempre apenas uma cópia
de determinada entity. Além de oferecer consistência ao usar diferentes endpoints de resposta,
isso significa que, ao fornecer uma definição de schema precisa, o Reactive Data Client pode manter automaticamente
todos os usos dos dados consistentes e atualizados. Os endpoints de atualização padrão Resource.update e
Resource.partialUpdate fazem isso automaticamente. Leia mais sobre como definir outros
endpoints de atualização
Delete
O Reactive Data Client exclui automaticamente as entradas de entity quando schema.Invalidate é usado. Resource.delete fornece um endpoint assim.
Create
As entities criadas ficam disponíveis imediatamente. Elas também podem ser adicionadas a Collections existentes com .push, .unshift ou .assign.