GraphQL 스터디/SPQR 라이브러리 3

GraphQL Custom Validation 추가

Custom Validation 필요성 정의 되지 않은 Validation를 사용할 경우 필요 ex: 나이 입력값과 성인유무를 입력받는 경우 나이에 따라서 성인유무도 체크 해야함 Custom Validation 추가 @Documented @Constraint(validatedBy = [CustomValidator::class]) @Target(AnnotationTarget.CLASS) annotation class CustomValid( val message: String = "", val groups: Array = [], val payload: Array = [] ) class CustomValidator: ConstraintValidator { override fun isValid(value: Us..

GraphQL Validation 추가

Validation의 필요성 사용자 등록과 같은 API를 작성할 때 필수 값이 없으면 DB오류나 의미 없는 데이터가 생성 될수 있음 사용자 등록 API 사용자 이름은 공백이면 의미 없는 데이터가 생성 data class User( val id: Long?, val name: String? ) @GraphQLMutation(name = "createUser", description = "사용자 등록") fun createUser(user: User): User { return user } 의미 없는 사용자 추가 mutation { createUser(user: { id: 1 name: "" }) { id name } } 응답 { "data": { "createUser": { "id": 1, "name": ..

GraphQL 오류 처리

개발 환경 설정 GraphQL SPQR 라이브러리 추가 implementation("io.leangen.graphql:graphql-spqr-spring-boot-starter:0.0.6") implementation("com.graphql-java-kickstart:graphql-java-tools:11.0.0") 기본 설정 오류 { "errors": [ { "message": "Exception while fetching data (/getErrorUser) : 사용자 조회 실패", "locations": [ { "line": 2, "column": 3 } ], "path": [ "getErrorUser" ], "extensions": { "classification": "DataFetchingExc..