LoginSignup
1
1

More than 5 years have passed since last update.

lagomのサンプルを動かしてみる

Last updated at Posted at 2017-09-18

※雑多なメモなので誤りがあるかもしれませんことをご了承ください

lagomってなに?

「まさマイクロサービスのフレームワークだ!!」と公式サイトにでかでかと書かれているが、マイクロサービスがそもそもよくわかってないのでそこはスルー。触ってみた感じだとCQRS+ESな仕組みを宣言的に実装出来るしくみじゃないかな〜って印象。

とりあえず動かしてみる

まずはここに書いてある通りにやってみる。
https://www.lagomframework.com/get-started-scala.html

ブラウザでhttp://localhost:9000/api/hello/Worldにアクセスしたら「Hello, World!」って表示されるはず。

他のサンプルは?

サンプルコードを読めば書いてある通り、Postメソッドで「Hello」の部分を変更できる。例えば、以下のコマンドを実行して

curl -H "Content-Type: application/json" -X POST -d '{"message":"Goodbye and Goodnight"}' http://localhost:9000/api/hello/Kenny

http://localhost:9000/api/hello/Kennyにアクセスしたら、メッセージが「Goodbye and Goodnight, Kenny!」に変わっている(どうでもいいけど、著者はにわかプロレスファン)

ちなみに変わっているのはKennyのときだけ(http://localhost:9000/api/hello/Worldにアクセスしたら、「Hello, World!」って表示される)多分、裏で動いているCassandraサーバーに記録してるんだと思う。

あとは、wscatっていうWebSocketのクライアントをインストールして、以下のコマンドを実行して文字列を入力するとレスポンスを返してくれる。

wscat -c ws://localhost:9000/stream
connected (press CTRL+C to quit)
> Doilux
< Hello, Doilux!
> Kenny
< Goodbye and Goodnight, Kenny!

どこに実装されているの?

前述のWebSocketじゃないやつはhello-lagom-apiサブプロジェクトのHellolagomService.scalaにインターフェースが定義されていて、hello-lagom-implのHellolagomServiceImpl.scalaに実装が書かれている。

WebSocketのやつはhello-lagom-stream-apiサブプロジェクトのHellolagomStreamService.scalaにインターフェースが、hello-lagom-stream-implサブプロジェクトのHellolagomStreamServiceImpl.scalaに実装が書いてある。
.*Loader.scalaにアプリケーションの設定が、ある程度決まった記述で書かれているんだと思う。

次は??

ドキュメントが充実しているので、とりあえずドキュメントを読みながら色々試すのがいいと思います(私もそんな感じで色々試しています)

他にはこの記事が役に立ちました。
たけぞう瀕死ブログ

1
1
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
1
1