[kotlin] 애노테이션을 활용한 GraphQL 스키마 생성

최근에 GraphQL이 인기를 얻고 있으며, 많은 개발자들이 백엔드 API를 만들 때 사용하고 있습니다. 모든 GraphQL API는 스키마를 정의하여 쿼리와 뮤테이션을 처리합니다. 코틀린에서 애노테이션을 사용하여 GraphQL 스키마를 생성하는 방법을 알아보겠습니다.

애노테이션 사용하기

코틀린에서 kgraphql 라이브러리를 사용하여 애노테이션을 이용하여 GraphQL 스키마를 생성할 수 있습니다.

import com.apurebase.kgraphql.schema.dsl.SchemaBuilder

@GraphQLSchema
fun createSchema() : SchemaBuilder<Unit>.() -> Unit {
    return {
        query("hello") {
            resolver { -> "world" }
        }
    }
}

위 코드에서 @GraphQLSchema 애노테이션은 해당 함수가 GraphQL 스키마를 생성하는 함수임을 나타냅니다.

스키마 정의하기

그 다음으로 스키마를 정의합니다. 스키마는 객체, 쿼리, 뮤테이션 등을 포함하며, 각각에 대한 리졸버(resolver) 함수를 제공해야 합니다.

import com.apurebase.kgraphql.schema.dsl.SchemaBuilder

@GraphQLSchema
fun createSchema() : SchemaBuilder<Unit>.() -> Unit {
    return {
        query("hello") {
            resolver { -> "world" }
        }

        type<Unit>()
    }
}

위 예제에서 query("hello")는 “hello”라는 쿼리를 정의하고, resolver 함수를 통해 해당 쿼리가 호출될 때 수행할 동작을 정의합니다. 또한, type<Unit>() 함수를 통해 반환 타입을 정의합니다.

애노테이션과 스키마 정의를 통해 코틀린에서 GraphQL 스키마를 생성하는 방법을 살펴보았습니다. 이제 여러분도 해당 방법을 사용하여 GraphQL API를 만들 수 있을 것입니다.