어느 요청이든 같은 api gateway를 바라본다. 이를 위해서는 gateway에서 여러 graphql 스키마를 합쳐야 한다. 결국 모든 스키마가 gateway에 합쳐진다. 이 과정이 바로 schema merge
.
모든 스키마가 합쳐지기 때문에 네이밍이 중요하다. A라는 api서버에서 설계한 스키마에 `Slot`이라는 타입이 존재하고 B라는 api서버에서 설계한 스키마에도 `Slot` 이라는 타입이 존재한다면 어떻게 될까
충돌로 판단
- gateway에서 두 타입이 충돌이라고 판단했다면 이는 결국 빌드가 되지 않고 에러를 리턴한다
충돌로 판단하지 않는 경우
- 이 경우가 더 심각한 경우인데 두 타입이 충돌되지 않고 합쳐진 것 자체가 설계가 잘못된건데 우연하게도 아무 문제없이 합쳐졌다고 생각하더라도 그 후에
request
에 대한 라우트가 불가능해진다. 이Slot
이라는 요청이 어느 api의Slot
을 바라보고 요청한건지 모르기에엉뚱한 response
를 보낼 가능성이 크다.
'GraphQL' 카테고리의 다른 글
GraphQL 페이지네이션 (0) | 2023.03.16 |
---|---|
GraphQL 기본 문법 - 서버 (0) | 2021.04.18 |
GraphQL 기본 문법 - 클라이언트 (0) | 2020.12.11 |