단일 트랜잭션에서 전체 변이 조작을 실행하는 GraphQL 서비스를 제공하려고합니다.단일 트랜잭션에서 GraphQL 돌연변이 연산
최상위 필드는 단일 트랜잭션에서 순차적으로 처리되고 이에 따라 데이터베이스가 변경됩니다. 실행 중에 오류가없는 경우에만 변경 사항을 데이터베이스에 커밋해야하며 그렇지 않은 경우에는 모두 롤백해야합니다.
지금 나는 두 가지 질문이 다음 GraphQL 사양에 따라
를, 최상위 필드의 직렬 실행은 각 최상위 필드가 그 전에, 그 수정 후 상태를 반영하는 값으로 채워된다는 것을 의미합니다 나중에 필드가 오류를 일으키는 경우 알려줍니다. 나중 상위 필드가 트랜잭션을 롤백하는 오류를 일으킬 때 이것이 필드의 실제 값이 아닌가?
최상위 필드의 변경이 실패한 경우 트랜잭션이 이후 처리를 방해하는 상태가되어 모든 변경 사항이 롤백되기 때문에 다음 최상위 필드를 실행하는 것은 의미가 없습니다. GraphQL 의미론에 따라 해당 필드의 실행을 건너 뛰어도 괜찮습니까 (null을 반환하고 오류 목록에 항목을 반환 할 수 있습니까)?
그것은 모두 UR 백엔드 구현에 따라 다르며 GraphQL과는 아무런 관련이 없습니다. GraphQL은 백엔드와 상호 작용하는 방법에 대한 인터페이스 일뿐입니다. – Mox
예, 좋습니다.하지만 API 우수 사례/API 사용자 기대 사항에 대한 질문이기도합니다. – Leisetreter