23
{ Skinny Framework 勉強会 導入&炎の Controller Arakaki Yusuke 1

Skinny framework勉強会

Embed Size (px)

DESCRIPTION

社内勉強会用の資料になります

Citation preview

Page 1: Skinny framework勉強会

{

Skinny Framework勉強会

導入&炎のController編

Arakaki Yusuke

1

Page 2: Skinny framework勉強会

!Skinnyの概要!環境の準備!Controller

アジェンダ

2

Page 3: Skinny framework勉強会

ControllerオンリーのWEB Applicationが構築できること

GOAL

3

Page 4: Skinny framework勉強会

!ScalatraとScalikeJDBCを土台としたフルスタックなMVC WEBアプリケーションフレームワーク

!Scala on Rails をコンセプトに開発されている

Skinnyってなによ

4

Page 5: Skinny framework勉強会

!現在はまだαステージ!@seratchさんが黙々と開発中

開発状況は?

5

Page 6: Skinny framework勉強会

環境構築

6

Page 7: Skinny framework勉強会

!Skinny-blank-app.zipを直接ダウンロード(今回)

!Yeomanからプロジェクトを構築!SBTで自分でプロジェクトを構築

導入方法は3つ

https://github.com/seratch/skinny-framework#try-skinny-now

7

Page 9: Skinny framework勉強会

超簡単

9

Page 10: Skinny framework勉強会

run : will run Skinny app for local developmentclean : will clear target directoryupdate : will update depscript_exitenciesconsole : will run sbt consolecompile : will compile all the classesdb:migrate : will migrate databasestest : will run all the teststest-only : will run the specified testpackage : will create *.war file to deploypublish : will publish *.war file to repository

Skinnyコマンド

10

Page 11: Skinny framework勉強会

Controller

11

Page 12: Skinny framework勉強会

Controller

SkinnyControllerをextendsして、Actionとなるメソッドを定義

controller/RootController.scala

12

Page 13: Skinny framework勉強会

Controller

Routesをmixinしてルーティングを定義Action名のSymbolも渡します

Routingは下記が参考になりますhttp://www.scalatra.org/2.2/guides/http/routes.html

controller/Controllers.scala

13

Page 14: Skinny framework勉強会

Controller

ScalatraBootstrapにてマウントします

ScalatraBootstrap.scala

14

Page 15: Skinny framework勉強会

Named parameterscontroller/Controllers.scala controller/RootController.scala

パラメータとして受け取れます

15

Page 16: Skinny framework勉強会

Wildcardscontroller/Controllers.scala controller/RootController.scala

ワイルドカードを使用した場合、* 部分をmultiParams(“splat”)で受け取れます。

16

Page 17: Skinny framework勉強会

Conditionscontroller/RootController.scala

Routingに条件を付与することができます。(Booleanを渡すだけでOK)

17

Page 18: Skinny framework勉強会

parameterscontroller/Controllers.scala

18

Page 19: Skinny framework勉強会

Filterscontroller/RootController.scala

SymbolはRouting定義時に定義しましたね(P13)

19

Page 20: Skinny framework勉強会

Redirectcontroller/RootController.scala

20

Page 21: Skinny framework勉強会

Haltingcontroller/RootController.scala

21

Page 22: Skinny framework勉強会

Not Foundcontroller/RootController.scala

22

Page 23: Skinny framework勉強会

おわり

23