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

More Related Content

Viewers also liked (7)

PDF
Feigelson Denzyl at 4th Athens Music Forum
Theo Potouroglou
 
PPT
Números y más números
guestd659a7
 
PDF
Redes Sociales
Joaquín Salvachúa
 
PPT
Rat
roberpf
 
PPT
Social networks and You !
Vanina Delobelle
 
PPT
Hans
granellmiquel
 
PPT
We Have A Big Backyard
murcha
 
Feigelson Denzyl at 4th Athens Music Forum
Theo Potouroglou
 
Números y más números
guestd659a7
 
Redes Sociales
Joaquín Salvachúa
 
Rat
roberpf
 
Social networks and You !
Vanina Delobelle
 
We Have A Big Backyard
murcha
 

Similar to Restful Web Service Ch2 (20)

PPT
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
 
PDF
RESTfulとは
星影 月夜
 
PPT
REST 入門
Yohei Yamamoto
 
PDF
Rails と Rack と HTTP と通信の話
Progate, Inc.
 
PPT
OSC2008 Tokyo/Spring REST勉強夜会
Siena. N
 
PDF
エコなWebサーバー
emasaka
 
PDF
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
 
PDF
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
 
PDF
Cocoa勉強会#33-意外に楽に使えるlibcurl
Masayuki Nii
 
PDF
UnicastWS vol.1
Unicast Inc.
 
PPTX
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
洵貴 佐川
 
PDF
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
PDF
WordPressAPI
Yuki Okamoto
 
PDF
RESTful #とは RailsスタイルからRESTを学ぼう
Toru Kawamura
 
PDF
RESTとRailsスタイル
Toru Kawamura
 
PDF
HTTPを理解する
IIJ
 
PPTX
Clrh 110716 wcfwf
Tomoyuki Obi
 
PDF
20120423 hbase勉強会
Toshiaki Toyama
 
PDF
HTTPと Webクローリングについて
Tomoya Kawanishi
 
PPTX
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
 
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
 
RESTfulとは
星影 月夜
 
REST 入門
Yohei Yamamoto
 
Rails と Rack と HTTP と通信の話
Progate, Inc.
 
OSC2008 Tokyo/Spring REST勉強夜会
Siena. N
 
エコなWebサーバー
emasaka
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
 
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
 
Cocoa勉強会#33-意外に楽に使えるlibcurl
Masayuki Nii
 
UnicastWS vol.1
Unicast Inc.
 
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
洵貴 佐川
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
WordPressAPI
Yuki Okamoto
 
RESTful #とは RailsスタイルからRESTを学ぼう
Toru Kawamura
 
RESTとRailsスタイル
Toru Kawamura
 
HTTPを理解する
IIJ
 
Clrh 110716 wcfwf
Tomoyuki Obi
 
20120423 hbase勉強会
Toshiaki Toyama
 
HTTPと Webクローリングについて
Tomoya Kawanishi
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
 
Ad

Recently uploaded (13)

PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
Ad

Restful Web Service Ch2