restful web service ch2

Post on 14-Dec-2014

1.724 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

2008.4.12 RWS Reading

TRANSCRIPT

第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の人も呼びたい

ご静聴ありがとうございました

ご静聴ありがとうございました

top related