Text
Page: 1
Hypermicrodat
a client
Kunihiko Ito
永和システムマネジメント
Page: 2
はじめに
Ruby Kaigi 2014 参加しました?
Page: 3
今日話すこと
Ruby Kaigi 2014 で感じたこと
試してみたこと
Page: 4
参加しました?
Hypermedia: The Missing
Element to Building Adaptable
Web APIs in Rails
Page: 5
聞いていない方
Video: http://
rubykaigi.org/2014/
presentation/S-
ToruKawamura
Page: 6
はじめまして
初参加
Kunihiko Ito
@kunitoo
Page: 7
概要
Hypermedia: The Missing
Element to Building Adaptable
Web APIs in Rails
疎結合なAPI
状態遷移をレスポンスに含める
設計
WEB API
Page: 8
hypermicrodata
HTMLをJSONに変換
HTMLから抽出
mirodata
リンク
フォーム
Page: 9
あらためて
Video: http://
rubykaigi.org/2014/
presentation/S-
ToruKawamura
Page: 10
感じたこと
サーバは簡単に作成できそう
クライアント難しくなりそう
Page: 11
実際に作ってみよう!
rails g scaffold User
name
email
view に microdata を付加
Page: 12
show.html.haml
.person{itemscope: true, itemtype: 'http://schema.org/Person',
itemid: users_url(@user), data: {main_item: true}}
.media
.media-body
%p#notice= notice
%p
%strong Name:
%span{itemprop: 'name'}= @user.name
%p
%strong Email:
%span{itemprop: 'email'}= @user.email
= link_to 'Edit', edit_user_path(@user), rel: 'edit'
|
\#{link_to 'Back', users_path, rel: 'collection', itemprop: 'isPartOf'}
Page: 13
uber+json
{
"uber":{
"version":"1.0",
"data":[
{
"url":"http://localhost:3000/users.1",
"name":"Person",
"data":[
{
"name":"name",
"value":"Kunihiko Ito"
},
{
"name":"email",
"value":"kuni.110.92@gmail.com"
},
{
"name":"isPartOf",
"rel":"collection",
"url":"/users"
},
{
"rel":"edit",
"url":"/users/1/edit"
}
]
}
]
}
}
Page: 14
アイディア
クライアントが hypermicrodata
と
同じルールで読みとれれば
簡単に作れるようになるのでは?
Page: 15
やってみて
microdata の付加が難しい
http://schema.org/
メタ的に考える必要がある
もっとデフォルトでできるとう
れしい
Page: 16
hypermicrodata client
みなさんも挑戦してみて下さい