Study/TIL (Today I Learned)
20240814 TIL
GrapeMilk
2024. 8. 14. 01:49
React Graphql Masterclass
32. Data Resolver - Overriding A Field
GraphQL 서버는 graphql 요청시 scalar 타입이면 값을 그대로 response하고 object 타입이면 object 타입의 각 필드마다 관련된 매핑 함수가 있는지 확인한다.
예를 들어 아래와 같은 데이터 구조에서
type Query {
sayHello: String
customers: [Customer]!
}
type Customer {
id: ID
name: String
age: Int
city: String
}
public class Customer {
private Integer id;
private String name;
private Integer age;
private String city;;
}
쿼리 요청시에 sayHello 필드는 string을 바로 내려주지만, Customer 필드를 확인할 때 해당 필드는 Object 타입이므로 각 필드가 scalar를 리턴해도 관련 매핑 함수가 있는지 확인한 뒤 실행한 값을 내려준다.
아래와 같은 age관련 함수가 있다면 항상 100을 내려줄 것이다.
@SchemaMapping(typeName = "Customer")
public Mono<Integer> age() {
return Mono.just(100);
}