Rabbit Slide Show

Hypermicrodata client

2014-11-29

Description

hypermicrodata のクライアントを作成しようとしたお話です

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
みなさんも挑戦してみて下さい

Other slides