2015/04/17(#jggug)G*なWeb API

0
uehaj @uehaj

grails url-mapping-reportで、今定義しているURLマッピングの一覧をかっちょ良くコンソールに表示してくれる #jggug

2015-04-17 19:25:22
uehaj @uehaj

GrailsのRest機能では、返すJSONのレンダリングをカスタマイズする方法がいくつかある。 #jggug

2015-04-17 19:26:08
close_yutori @kimukou2628

#jggug speakerdeck.com/yamkazu/grails… P26 レンダリングの流れの説明を聞いてます(流れをなんとなくでも把握しておきましょう

2015-04-17 19:27:04
uehaj @uehaj

Restのレンダリングは、Controller→ Renderer→ Converter →Marshallerという2つのアクターこの流れで出てくる。 #jggug

2015-04-17 19:27:12
close_yutori @kimukou2628

#jggug speakerdeck.com/yamkazu/grails… P28 includesで指定されたものだけでJSONを作ってくれるのか。。。確かに便利かも

2015-04-17 19:29:08
uehaj @uehaj

GrailsのRestのレンダリングの簡単な方法の1つは、SpringのBean定義で、bookRenderer(JsonRendeler..)でinclude指定でレンダリング結果に含まれる要素を指定すること。 #jggug

2015-04-17 19:29:58
uehaj @uehaj

GrailsのRestのカスマイズの方法その2、細かいやつ。マーシャラーで出力内容をマップとかクロージャで設定。BootStrapでやるとお手軽。 #jggug

2015-04-17 19:31:22
close_yutori @kimukou2628

#jggug speakerdeck.com/yamkazu/grails… P31 JSONからBookのBeanにマッピングしてくれるようにするための書き方

2015-04-17 19:33:13
uehaj @uehaj

Restリクエストでfields=..を指定すると特定のプロパティを取得することもできる。 #jggug

2015-04-17 19:36:02
close_yutori @kimukou2628

#jggug import Projectだと中々終わらない(苦笑。。なんか凄い解析しているのでしょうか。。IDEAさん、、

2015-04-17 19:37:07
徳永広夢 @tokuhirom

#jggug にいこうと思ったんだけど、時間に遅れたらビルに入館できなくて詰んでいた。

2015-04-17 19:38:53
フリップ(一歩前進。) @frepe2011

当然と言えば当然ですが、Groovyの機能がバシバシ出て来ますね。 #jggug

2015-04-17 19:38:59
uehaj @uehaj

カスタムマーシャラを定義するなら、includesを対応するには コントローラのgetIncludeFields()メソッドを定義して自分でハンドリングしてやる必要がある。 #jggug

2015-04-17 19:39:09
Nobuhiro Sue @nobusue

Grails3のRESTはいろいろ良く考えられている。実際のWebAPIをかなり研究していると思われ。 #jggug #grailsfw

2015-04-17 19:43:01
uehaj @uehaj

Restデータの一覧を返すとき、配列をトップレベルで返すのではなく、要素数や範囲を指定するキー等を含むマップでラッピングすることをエンベローブと呼ぶ。Grailsではコンバータを定義することで対応できる #jggug

2015-04-17 19:43:29
こーじ @saba1024

Grails2.4で、ドメインの中にStringでJSON文字列を保存していて、JavaScriptの中で var json = ${raw(${domain.json})}みたいな書き方すると、勝手に文字列からjsonオブジェクトに変換されてるっぽい。 #jggug

2015-04-17 19:43:51
close_yutori @kimukou2628

speakerdeck.com/yamkazu/grails… #jggug P45 max等を指定するとGrailsのrestControllerがよしなにpaging機能を提供してくれるみたい

2015-04-17 19:45:27
uehaj @uehaj

GrailsのRestのページングは、paramsにpaging(total-count:, current-max..current-offset..)というプロパティがあればページング制御に使われる。 #jggug

2015-04-17 19:46:37
uehaj @uehaj

Rest APIのバージョニングが広報互換のために重要だが3つぐらい流儀がある(urlに埋めこむ, acceptヘッダにversion, media-typeで指定)。 #jggug

2015-04-17 19:48:11
Nobuhiro Sue @nobusue

WebAPIのバージョニングにはnamespaceを使う #jggug #grailsfw

2015-04-17 19:48:47
uehaj @uehaj

GrailsでURLでバージョニングするには、コントローラにネームスペースを指定してマッピングでバージョンごとにふりわけるようにすると便利 #jggug

2015-04-17 19:49:33
close_yutori @kimukou2628

speakerdeck.com/yamkazu/grails… #jggug p57 テストの遣り方 オススメはSpringBootにテンプされている TestRestTemplateを使うと良い

2015-04-17 19:50:02
uehaj @uehaj

GrailsでインテグレーションテストでRestのテストするにはTestRestTemplateが便利。メソッド名にHTTP METHODとURLを書く。留意点はトランザクションを自分で指定しなければならない。 #jggug

2015-04-17 19:52:26