feat: execute HTTP and query runtime contracts
This commit is contained in:
@@ -141,17 +141,26 @@ RP-02 구현으로 다음 경계는 실행 경로에 연결됐다.
|
||||
- presentation의 direct fetch/browser storage/concrete adapter/TanStack import와
|
||||
application의 React/concrete adapter import는 negative fixture가 거절한다.
|
||||
|
||||
RP-03 구현으로 HTTP와 server-state 경계도 다음처럼 연결됐다.
|
||||
|
||||
- `src/presentation/adapters/query`만 TanStack Query import를 허용하며
|
||||
application query/mutation을 cancellation, invalidation, deduplication,
|
||||
optimistic rollback과 conflict 해제에 연결한다.
|
||||
- HTTP request builder는 path escaping과 canonical search를 소유하고 Zod가
|
||||
변환한 search/body를 실제 request에 사용한다.
|
||||
- runtime timeout과 max retry attempts가 transport factory에 주입되며
|
||||
validation, success, abort, timeout과 exhausted retry의 timer/listener
|
||||
정리를 테스트한다.
|
||||
- HTTP가 자동 network retry를 소유하고 query/mutation adapter의 vendor retry는
|
||||
비활성화한다.
|
||||
|
||||
후속 브랜치에서 닫아야 할 실행 불일치는 다음과 같다.
|
||||
|
||||
1. `QueryClientProvider`는 존재하지만 실제 product route에서
|
||||
`useQuery` 또는 `useMutation`을 연결하는 query bridge가 없다.
|
||||
2. route registry의 `paramsSchema`, `searchSchema`, `loadingSurface`,
|
||||
1. route registry의 `paramsSchema`, `searchSchema`, `loadingSurface`,
|
||||
`errorSurface`, `chunkId` 일부는 실행 route와 연결되지 않았다.
|
||||
3. 제거 테스트는 `src/sample/contract-fixture`만 제거하며, sample API
|
||||
2. 제거 테스트는 `src/sample/contract-fixture`만 제거하며, sample API
|
||||
operation, Zod schema, mapper, domain model과 query key는 다른 경로에
|
||||
남는다.
|
||||
4. runtime의 `REQUEST_TIMEOUT_MS`, `MAX_RETRY_ATTEMPTS`는 검증되지만
|
||||
concrete HTTP client 구성에 전달되지 않는다.
|
||||
|
||||
이 문서의 목표 구조는 기존 기반을 폐기하는 것이 아니라 이러한
|
||||
불일치를 제거하는 것이다.
|
||||
|
||||
Reference in New Issue
Block a user