For API definitions (like TodoResource), apply the skill "data-client-rest".
Prefer using AsyncBoundary for error handling and loading states unless the codebase has a custom AsyncBoundary that already combines Suspense and ErrorBoundary. Its props are fallback, errorComponent, and errorClassName and listen. It can be used to wrap any component that fetches data.
Controller is returned from useController(). It has: ctrl.fetch(), ctrl.fetchIfStale(), ctrl.expireAll(), ctrl.invalidate(), ctrl.invalidateAll(), ctrl.setResponse(), ctrl.set(), ctrl.setError(), ctrl.resetEntireStore(), ctrl.subscribe(), ctrl.unsubscribe().
Utilice ganchos @data-client/react: useSuspense, useQuery, useCache, useLive, useDLE, useSubscription, useController para búsqueda/mutaciones, DataProvider, AsyncBoundary, useLoading, useDebounce Fuente: reactive/data-client.