使用SpringBoot + Kotlin + GraphQL进行入门指南

这篇文章写得相当粗糙。
这是一篇用于学习服务器端Kotlin入门的文章。

顺便提一下,我是一名Android工程师,但我没有服务器端经验。

使用的物品

SpringBoot
春季引导
Kotlin
科特林
GraphQL
图灵哲学

环境

IntelliJ IDEA 2019.1 (Ultimate 版本)
JRE: 1.8.0_202-release-1483-b39 x86_64
macOS 10.14.4

首先,先从简单的开始实施。

如果GraphQL请求中包含版本,创建一个函数始终返回1.0。

首先创建项目
项目名称为kotlin-graphql-sample

添加GraphQL库

将 build.gradle 文件进行以下修改如下:

提交
https://github.com/ikemura23/kotlin-graphql-sample/commit/f34c03d9344b9258b489f5ef0e9e98d20c3e8c2f

// buildscriptを追加
buildscript {
    ext.kotlin_version = '1.3.31'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
        classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE"
    }
}

// apply pluginを追加
apply plugin: 'kotlin'
apply plugin: "kotlin-spring"
apply plugin: 'kotlin-kapt'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group 'kotlin'
version '1.0-SNAPSHOT'

repositories {
    jcenter() // 追加
    mavenCentral()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    // ここから追加
    compile 'com.graphql-java-kickstart:graphql-spring-boot-starter:5.7.3'

    // to embed Altair tool
    runtime 'com.graphql-java-kickstart:altair-spring-boot-starter:5.7.3'

    // to embed GraphiQL tool
    runtime 'com.graphql-java-kickstart:graphiql-spring-boot-starter:5.7.3'

    // to embed Voyager tool
    runtime 'com.graphql-java-kickstart:voyager-spring-boot-starter:5.7.3'

    implementation 'org.springframework.boot:spring-boot-devtools'

    // testing facilities
    testCompile 'com.graphql-java-kickstart:graphql-spring-boot-starter-test:5.7.3'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

创建MainApplication类

package demo

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication //アノテーション追加
class MainApplication {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            SpringApplication.run(MainApplication::class.java, *args)
        }
    }
} 

试着运行MainApplication。
如果构建日志中没有错误,则表示正常。

创建GraphQL的模式

虽然不太了解称之为”方案”,但是需要创建查询文件。

type Query {
    version: String!
} 

似乎意味着针对version请求返回String类型,String!中的!表示“不为空”。

创建Kotlin代码来实现GraphQL。

使用 Kotlin 编写处理 GraphQL 请求的代码。

@Component
class Query : GraphQLQueryResolver {
    // versionというリクエストに対して
    fun version(): String {
        return "1.0" // 常に1.0を返す
    }
}

在这个时间点上重新构建和执行MainApplication。如果没有错误,则可以访问以下的spring-boot-devtools。

使用方法如下

スクリーンショット 2019-05-04 14.47.09.png

用这个可以简单地创建一个SpringBoot + Kotlin + GraphQL项目。

完成的物品

我其实还尝试了很多其他的东西,不过这次就到这里为止。
如果你想看的话,所有的代码都在GitHub上。

bannerAds