使用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。
使用方法如下

用这个可以简单地创建一个SpringBoot + Kotlin + GraphQL项目。
完成的物品
我其实还尝试了很多其他的东西,不过这次就到这里为止。
如果你想看的话,所有的代码都在GitHub上。