3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初めてのSpring-boot(Kotlin)で簡素なREST Web APIを構築してみる。

Posted at

最近流行の(?)Spring bootを使って、仕事で学んだRESTful Web APIを構築していきます。

とりあえず、最近流行(?)のSPAを想定して、
クライアントサイド ~ サーバーサイド ~ データベース
まで繋げることを目標とします。

今回は、STSをダウンロード~Hello Worldまでを記載します。

#環境開発構築
STS(Spring Tool Suite)というプラグイン(?)を利用して開発を行います。
STSとは、Eclipseへインストールするプラグイン、それが既にEclipseにインストールされた状態のものの2種類を指すみたいです。(間違ってたらすみません...)
今回は後者をダウンロードして開発環境を整えます。

といっても、下のURLから最新版のzipファイルをダウンロードしてきて、

ダウンロードしたzipファイルを解凍して終了です。

#事前準備

##STSの動作を軽量化する
STSはEclipseをベースにしているからか、Eclipseと同様の方法で動作を軽くすることができるみたいです。
参考サイト:https://doruby.jp/users/YDM/entries/_eclipse_8_
iniファイルのメモリ設定を変える、コンテンツアシストのAuto設定を無効にするだけでも大分スムーズに動きます。
(コンテンツアシストを利用すると重くなりますが・・・)

#新規プロジェクト作成

##プロジェクトの作成
メニューバーのFile -> New -> Spring Starter Project
を押下します。すると、次の画面が表示されるので、

Qiita

Name:プロジェクト名
Language:Kotlin
Type:ご自分の使い慣れているものを設定すればよいと思います(今回はMavenを設定します)

を設定します。

nextを押下して、次の画面では、
Available:Jersey(JAX-RS)
を設定。(今回はHelo World出力までが目標なので、それ以外の設定(MyBatis)は省きます。)

Qiita

他に設定したいものがなければそのままFinishします。

これでプロジェクトを作成できました。

##自動生成クラスの修正
自動生成されたApplicationクラスを開き、手動でクラス名にopen句を設定します
Kotlinでは、openをつけていないクラスは拡張不可(Javaでいうfinal句をつけた状態)として扱われるのですが、
Applicationクラスは拡張不可だと不都合が起きるらしく(サーバ起動時にエラーで落ちました)、その対応となります。

@SpringBootApplication
open class RestsampleApplication
// class RestsampleApplication

fun main(args: Array<String>) {
    SpringApplication.run(RestsampleApplication::class.java, *args)
}

##Servletの設定
作成したプロジェクトをservlet3サーバーにデプロイするための設定を行います。
今回はWeb.xmlではなく、ResourceConfigのサブクラスを作成する方法をとります。
Javaの場合はpublicなコンストラクタ内に処理を書きますが、Kotlinではconstructorではなくinitキーワードを利用する必要があります。(ここら辺はプライマリコンストラクタ、セカンダリコンストラクタといったJavaにはない(直接見る機会がないだけ?)の概念が理由みたいです。)

@Component
@ApplicationPath("/api")
class JerseyConfig :ResourceConfig(){
	
    init {
		// RESTの窓口クラスの格納されているパッケージを指定
        packages("com.example.demo");
    }

}

##Resourceクラスの作成
これで最低限の設定は完了しました。
後は、データの送受信を行うためのResourceクラスを作成します。

@Path("/kotlin")
class KotlinResource {
	
	@GET
	fun test():String{
		return "hello Kotlin REST Web API!!"
	}
}

#動作確認
http://localhost8080/api/kotlin

ブラウザ上で下記画面が出力されたら成功です。
Qiita

今回はここまで。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?