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

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

Viewers also liked (7)

Feigelson Denzyl at 4th Athens Music Forum
Feigelson Denzyl at 4th Athens Music ForumFeigelson Denzyl at 4th Athens Music Forum
Feigelson Denzyl at 4th Athens Music Forum
 
Números y más números
Números y más númerosNúmeros y más números
Números y más números
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 
Rat
RatRat
Rat
 
Social networks and You !
Social networks and You !Social networks and You !
Social networks and You !
 
Hans
HansHans
Hans
 
We Have A Big Backyard
We Have A Big BackyardWe Have A Big Backyard
We Have A Big Backyard
 

Similar to Restful Web Service Ch2

REST APIに入門する。
REST APIに入門する。REST APIに入門する。
REST APIに入門する。
Kazushi Kawamura
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
Rui Hirokawa
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニックmiso- soup3
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料
Siena. N
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
 
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
Burp Suite Japan User Group
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
星影 月夜
 
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
Shinichi Takahashi
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901Masayuki Abe
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門
Etsuji Nakai
 
RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼう
Toru Kawamura
 

Similar to Restful Web Service Ch2 (20)

REST APIに入門する。
REST APIに入門する。REST APIに入門する。
REST APIに入門する。
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
 
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
 
REST 入門
REST 入門REST 入門
REST 入門
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
BEAR.Sunday@phpcon2012
BEAR.Sunday@phpcon2012BEAR.Sunday@phpcon2012
BEAR.Sunday@phpcon2012
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門
 
Php s1
Php s1Php s1
Php s1
 
Http
HttpHttp
Http
 
RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼう
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 

Recently uploaded

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 

Recently uploaded (10)

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 

Restful Web Service Ch2