6月11日 フロントエンドの人がWeb APIを語る会 参加メモ

  • 36
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

http://kfug.connpass.com/event/32138/

セッション

Falcorについて

@pastelInc さん

REST APIでは非効率ですか?ならばFalcorで立ち向かってみましょう

Falcor

https://github.com/Netflix/falcor

動画配信大手のNetflixが開発したライブラリ。ミドルウェア。

カスタマイズした情報を取得できる

データの階層をパスに記述することで、過不足無い情報を送受信できる。

キャッシュコードの効率を向上させる

重複したアイテムはひとつだけキャッシュする。

→キャッシュコヒーレンシー

キャッシュとメモリの一貫性を保つ

技術的な構造

単一の仮想的なjsonモデルに集約して通信

クライアントからは一個のjsonのみあるようにみえる

→JSON Graph

同じ内容が複数のエントリーにあるような状況

サーバーサイドでは単一の情報としてもっているが、
クライアントサイドでは別々のオブジェクトになるところ、
一個のアイテムとして扱える。

例;最近みた動画リストと、おすすめ動画リスト、それぞれ同じ映画が登録されているとして、その映画に関する情報は同一である。

Falcorが同じアイテムかどうかを判断して、既に別でキャッシュされた同じアイテムがあれば、キャッシュから取ってくる事で、高速に動作できる。

サーバーサイドのためのRouter

サーバーサイドを JSON Graph グラフに対応させる。

→リクエストを受け取ってから別のAPIを叩くのもあり

→JSON Graph
の設計が結構面倒らしい

→Nodeでの実装になる

WordPressをAPIでぶん回す

岡本秀高 さん

WordPressコア実装を目指して開発が進められているWP REST API。 Reactでのフロント実装やAWS Lambdaと組み合わせた使い方など、事例やコードを紹介します。

https://speakerdeck.com/hideokamoto/wordpresswoapidebunmawasu

WordpressのデータをjsonでとってこれるAPI

管理画面とViewの分離

現状では知っている人にとっては結局WP関数のほうが便利

従前のWPのテーマとプラグインの問題点

密に結合しているため、1箇所落ちると全部ダメになる。

→ APIで疎結合にすることで、完全に落ちる事は少なくなる

まだベータ版

現在はプラグイン形式で有効にしたら使える

IONICとかで使うと便利

自分のブログをアプリ化したり

GitHub Pages を Web API として使う

カイト さん

GitHub の API ではなく、GitHub のサービスの一つである GitHub Pagesを使って、サーバなしで Web API を提供

https://speakerdeck.com/ixkaito/github-pages-wo-web-api-tositeshi-u

Jekyll Pages API を使う

Jekyll サイト内のすべてのページなどのデータを元にJSONファイルを生成する

GitHub Pages を使うメリット

インフラのメンテが不要

記事もすべてGit管理

スタティックファイルの配信なのでセキュリティリスクが低い

GitHub Pages は、許可されたプラグイン以外は使用できない

→Jekyll Pages APIは使えない

ローカルで生成してプッシュする?

→面倒

TravisCIなどの外部サービスで自動化する

→学習コストがかかる
→公開されるまで時間がかかる

Rakefileなどによるデプロイ

→Rakefileを作る必要がある
→git以外にデプロイ用のコマンドを実行する必要がある

GraphQLについて

おのうえ(@_likr) さん

フロントエンドの変更のためにバックエンドのWeb APIまで修正なんてもうやってられない? GraphQLでその悩みを解決しましょう。

最大公約数的なAPIになりがち

不要な情報がつめこまれたり、ページ毎に乱立したり。
無秩序に拡張される、つらいAPIに、、、

GraphQLで解決

Facebookの提唱するクエリインタフェース

フロント側で取ってきたいクエリーを書けば必要なフィールドだけとってこれる。

柔軟なクエリインタフェースを低コストで実装できる。

expressのミドルウェアとして動く

自由なところ

クライアントサイド、サーバーサイド自由に構築できる

LT

オープンデータを自動デプロイしたい話が多かった

Lambda+GItHub+Travis CIで全自動サーバーレスAPI

宮内隆行 さん
https://speakerdeck.com/miya0001/lambda-plus-github-plus-travis-citequan-zi-dong-saharesuapi

madefor

https://github.com/madefor

オープンソースで自治体の足りないところを補完する活動

郵便番号API

https://github.com/madefor/postal-code-api

Lambdaから毎日Travis叩いて自動更新

Node.jsでWebサイトからAPIを作るプログラムを書いた話

@potate4d さん
https://speakerdeck.com/potato4d/node-dot-jsdewebsaitokaraapiwozuo-rupuroguramuwoshu-itahua

最低賃金APIってない?というFB上の一言から。

Webサイトで公開されている情報のAPI化需要がある。

SJISの扱いは面倒。

行政のCSVファイルを 勝手にAPIにしてみた話

岡本秀隆 さん
https://speakerdeck.com/hideokamoto/xing-zheng-falsecsvhuairuwo-sheng-shou-niapinisitemitahua

和歌山県がgithubでオープンデータを公開している

https://github.com/wakayama-pref-org

役所のデータなので、CSV、SJIS

json化したら使いやすくなる

試しに図書館の貸出ランキングをJSON API化

https://github.com/hideokamoto/Prefectural-Library-Loan-Best

Travisでデプロイ自動化

FBでGitHubの人や和歌山県の人からリアクション

思いつきでもやってみたら喜ばれる

mocha + superagent + power-assert で始めるAPIテスト入門

後藤知宏 さん

(すみません、メモ消えてしまいました)