SHABELはLine SUMMER INTERNSHIP 2018 エンジニアスクールコースにてKyoto Aチームによって開発されたリアルタイムメッセージングアプリです。
このレポジトリではSHABELにおけるサーバーサイドアプリケーションを扱っています。 クライアントのレポジトリはこちらからアクセスできます。
- Kotlin
- SpringBoot (REST API, STOMP over Websocket)
- IntelliJ
-
docs/nginx/kyoto_api.conf を /etc/nginx/conf.d/任意の名前.conf にコピー。
-
コピーしたconfig fileを環境に合わせて書き換え。
-
nginxを再起動
-
docs/models.sqlをサーバー上で実行
mysql -h localhost -u [user] -p < models.sql
-
プロジェクトルートでGradleビルドを行う
gradlew build
-
build/libs/に作成されたjarファイルをサーバーに転送
-
nohupを用いてバックグラウンドで実行
sudo nohup java -jar api.jar &
SHABELではリアルタイムでのメッセージのやり取りをSTOMP over Websocketを用いて実現しています。 STOMPはPub - Sub型のメッセージングプロトコルであり、TCP上、Websocket上で利用できますす。今回はWebsocket上での実装を行いました。
リアルタイム以外で情報を受け取る時はSTOMP上ではなくREST APIを叩いて取得するようになっています。
https://kyoto-a-api.pinfort.me/swagger-ui.htmlからSwagger UI形式のAPIリファレンスを見ることができます。