restful web service ch2
DESCRIPTION
2008.4.12 RWS ReadingTRANSCRIPT
第1回RESTful
Webサービス読書会
自己紹介
kunit
高橋邦彦PHP
Programmer
MapleというWeb Application
Framework を作ってます
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
自己紹介
kunit
高橋邦彦PHP
Programmer
MapleというWeb Application
Framework を作ってます
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
kunit
高橋邦彦PHP
Programmer
MapleというWeb Application
Framework を作ってます
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
高橋邦彦PHP
Programmer
MapleというWeb Application
Framework を作ってます
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
MapleというWeb Application
Framework を作ってます
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
次期バージョンMaple4を
RESTfulにしたいと思ってます
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
さて本題へ
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
第2章Webサービスクライアントの
作成
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
21
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WebサービスはWebサイト
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
あらすじ
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Webサービスに便利なライブラリ
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
常に存在するとは限らない
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ので
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTPRequestと
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTPResponseを
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
直接操作するプログラムを
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
いろんな言語で
書いてみよう
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
だが
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
いろんな言語を使って
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
今日ここで実行するのは大変なので
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
実際に実行するのは
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Rubyのみです
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
RESTfulWebサービス
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
基本的なHTTP
クライアント
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
YahooのWeb検索
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここで実際に実行
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
このRubyのサンプルでは
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP Requestの送信
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
標準ライブラリopen-uri
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
出力の解析
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
標準ライブラリREXML
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
一般化すると
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(1)
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP Requestに含めるデータを
考える
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP MethodURI
HTTP HeaderEntity Body
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(2)
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
dataをHTTP Request
として組み立てて
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP Server送信
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(3)
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Responsedataを解析
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Response CodeHeader
Entity Body
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
第2章はこれをいろんな言語で
やってみてます
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
けど実演するのは
Rubyのみです(くどいけど)
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
この章ではいちいち
この基本構造を書くけど
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ふつうはラッパーを作成する
(かあるものを使う)
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
いろんなラッパーが用意されてるが
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
やりかたばらばら
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WADL
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WebApplicationDescriptionLanguage
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
RESTful Serviceを記述できる語彙を持つ言語
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
SOAPではWSDL
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ActiveResource
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Ruby on Rails
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Web Serviceのクライアントの作成が簡単
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
第2章では説明しないよ
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
22
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
deliciousサンプルアプリケーション
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここからはdeliciousの
Web Serviceにアクセスする
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
けどdeliciousよくない
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
deliciousのWeb Serivceの
設計はRESTfulじゃない
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
httpsapideliciousv1postsaddhttpsapideliciousv1tagsrename
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Requestは全て
GET Method
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
URIに動詞が登場
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
よろしくない
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
なぜdeliciousを選んだの
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(1)
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
理解しやすいよく知られてる使いやすい
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(2)
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
記述的ではなく規範的であることを明確にするため
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
サーバは理想主義クライアントは実用主義
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
自分がすることには保守的であれ
他人から受け取るものには寛容であれ
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
(3)
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
7章の伏線
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
7章ではちゃんと
RESTfulにつくるよ
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
これ以降のサンプル
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
apideliciousにhttps接続して
GET v1postsrecentをRequest
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Responseを解析してブックマークの
href属性とdescription属性を標準出力に書き出す
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
23
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
リクエストの作成HTTPライブラリ
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
いろんな言語のHTTPライブラリを
紹介
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
必要となる機能
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTPSとSSL証明書の検証
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
メソッドサポートGET HEADPOST PUT
DELETE
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
PUTまたはPOSTのEntity Bodyとして送信されるデータをカスタマイズできる
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP Headerをカスタマイズできる
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ResponseのEntity Body以外にResponse Codeと
Headerにもアクセスできる
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
HTTP Proxy経由で通信できる
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここでRubyの
サンプル実演
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
24
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
レスポンスの処理XMLパーサー
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Web ServiceのEntity Bodyは
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
通常XML Document
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
なのでXMLの
パースが必要
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
XMLパーサは3種類ある
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ドキュメントベースの手法
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
DOM
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
DocumentObjectModel
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
扱うのが容易
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ランダムにアクセスができる
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ただしドキュメント全体を扱う必要がある
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
大きなドキュメントだとメモリを大量に食う
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
イベントベースの手法(2種類)
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ドキュメントベースの手法に比べて効率がよい
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ただし不正なXMLに
弱い
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
SAX
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Simple APIfor
XML
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
複雑になるが一部分だけ扱いたいときに
便利
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
pull Parser
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
SAXより扱いたい部分が多い場合に便利
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
XMLパーサはその時々で使い分け
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここでRubyの
サンプル実演
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
25
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
JSONパーサー直列化されたデータの処理
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Web Serviceが返すドキュメントはXMLだけじゃないよ
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
JSONで単純なデータ構造にして返すものが増えてきた
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
数値配列ハッシュ
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
なぜJSON
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Web Serviceを受け取るのがJavaScriptというのが多いから
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここでRubyの
サンプル実演
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
もしかして
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
筆者JSON嫌い
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
26
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WADLによるクライアントの簡易化
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
パターンがあるならもっと簡単に扱えないの
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
そこで
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WADL
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WebApplicationDescriptionLanguage
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
詳しい説明は9章まで待て
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
何ヶ月後
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
WADLの導入は
進んでいない
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
なぜ(参加者に質問)
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
ここでRubyの
サンプル実演
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
結論
Pythonの人も呼びたい
ご静聴ありがとうございました
Pythonの人も呼びたい
ご静聴ありがとうございました
ご静聴ありがとうございました