fetch apiについて

21
Fetch API にににに 2016.6.30 Developers in KOBE Vol. 6 BathTimeFish にに にに

Upload: masakazu-muraoka

Post on 07-Feb-2017

287 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Fetch apiについて

Fetch API について

2016.6.30Developers in KOBE Vol. 6

BathTimeFish 村岡 正和

Page 2: Fetch apiについて

HTML5-WEST.jp 代表 / html5j マークアップ部 部長 / HTML5 Experts.jp メンバーNPO 法人日本ウェアラブルデバイスユーザー会理事神戸市ウェアラブルデバイス推進会議メンバーなど

むらおか まさかず

村岡正和Web アプリケーション開発  IT 業務システム設計 / 開発

Web サービス導入 / 事業戦略コンサルティング神戸デジタル・ラボ 社外取締役

@bathtimefish

HTML5-WEST.jp

Page 3: Fetch apiについて

Firefox OS 開発ガイドブックhttp://amzn.to/292MeXl

Page 4: Fetch apiについて

今年も出ます。 Maker Faire 2016 !

Page 5: Fetch apiについて

ドアセンサー API 実証実験中!

Page 6: Fetch apiについて
Page 7: Fetch apiについて

Fetch API

次世代 HTTP Request

Page 8: Fetch apiについて

https://fetch.spec.whatwg.org/

Page 9: Fetch apiについて

モダンなかたちで HTTP リクエストできる。Promise ベースな API

Page 10: Fetch apiについて

こうだったのが、

Page 11: Fetch apiについて

こうなる。

Page 12: Fetch apiについて

Service Worker などでの HTTP Request を簡単に利用できるように開発されていたが、独立した API としても定義された。 Web ブラウザでは window.fetch として実装されている。

https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch

Page 13: Fetch apiについて

http://caniuse.com/#feat=fetch

実装状況

Page 14: Fetch apiについて

https://github.com/github/fetch

Polyfill がある

Page 15: Fetch apiについて

Header オブジェクト

URL オプション

Promise が返るJSON が返る

基本的なリクエスト

Page 16: Fetch apiについて

ヘッダーやオプションの指定

‘cors’ で非 CORS にリクエストするとエラーとなる( デフォルト )‘no-cors’ だと空のレスポンスが返る

デフォルトでは Cookie などのクレデンシャルを含めてリクエストしない含めたいときは’ include’ とする

リクエストヘッダの追加

https://fetch.spec.whatwg.org/#concept-request-cache-mode6 つの cache-mode がある : “default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached"

Page 17: Fetch apiについて

フォームデータを POST する例FormData オブジェクト

データを追加

Request Method POST

Page 18: Fetch apiについて

Headers / Request / Response オブジェクト

Request オブジェクト

Headers オブジェクト

Response オブジェクトFetch が成功して正常にレスポンスされたとき true となる404 とかの場合 response.ok = false となる

ネットワークエラーなどで fetch が reject されたときcatch にエラーオブジェクトがコールバックされる

Page 19: Fetch apiについて

Service Worker 内で push 通知を受け取る promise を event.waitUntil に渡さないと処理が終了しないうちに Service Worker が終了してしまうので注意。http://qiita.com/tomoyukilabs/items/9b464c53450acc0b9574

ExtendableEvent.waitUntil()https://developer.mozilla.org/ja/docs/Web/API/ExtendableEvent/waitUntil

Page 20: Fetch apiについて

感 想XHR よりいろいろできる fetch API

Polyfill もあることだしそろそろ使っていったらいいかもしれませんね。

Page 21: Fetch apiについて

Thanks !