Skip to content

Instantly share code, notes, and snippets.

View maniish-jaiin's full-sized avatar
🎯
Focusing

Manish Jain maniish-jaiin

🎯
Focusing
View GitHub Profile
interface Profile {
val id: UUID,
val name: String
}
data class User {
override val id: UUID,
override val name: String
}: Profile
interface Profile {
id: ID
name: String
}
type User implements Profile {
id: ID
name: String
}
type User {
id: ID
name: String
}
type Company {
id: ID
name: String
address: String
}
{
"data": {
"getIVehicles": [
{
"name": "BMW X1",
"price": 45000,
"engineType": "PETROL"
},
{
"name": "Ducati",
query{
getIVehicles{
... on Car{
name
price
engineType
}
... on Bike{
name
price
@Component
class VehicleResolver(private val vehicleService: VehicleService) : GraphQLQueryResolver {
fun getIVehicles(): List<IVehicle> {
return vehicleService.getIVehicles()
}
}
@Service
class VehicleService {
fun getIVehicles(): List<IVehicle> {
return listOf(
interface IVehicle {
val name: String
}
data class IBike(override val name: String, val price: Int): IVehicle
data class ICar(override val name: String, val price: Int, val engineType: String) : IVehicle
type Query{
hello: String
getIVehicles: [IVehicle]!
}
interface IVehicle{
name: String
price: Int
}
implementation("com.graphql-java-kickstart:graphql-spring-boot-starter:6.0.1")
implementation("com.graphql-java-kickstart:graphql-java-tools:5.7.1")
runtimeOnly("com.graphql-java-kickstart:altair-spring-boot-starter:6.0.1")
runtimeOnly("com.graphql-java-kickstart:graphiql-spring-boot-starter:6.0.1")
runtimeOnly("com.graphql-java-kickstart:voyager-spring-boot-starter:6.0.1")
runtimeOnly("com.graphql-java-kickstart:playground-spring-boot-starter:6.0.1")
type Query{
hello: String
}