第2回 人形町Techで騒がnight

31
株式会社Emotion Tech 三上 WebAPI開発に必要な ドキュメントを作る話 第2回 人形町Techで騒がNight

Transcript of 第2回 人形町Techで騒がnight

Page 1: 第2回 人形町Techで騒がnight

株式会社Emotion Tech三上 悟

WebAPI開発に必要なドキュメントを作る話

第2回 人形町Techで騒がNight♥

Page 2: 第2回 人形町Techで騒がnight

会社紹介

株式会社Emotion Tech(旧 wizpra)

ミッション「すべての人がイキイキと働ける社会の実現」

事業内容顧客の声を起点とした経営課題の解決

サービス品質の向上を行うサービス

「Emotion Tech」の開発・運営

Page 3: 第2回 人形町Techで騒がnight

サービス紹介

“Emotion Tech”は、顧客・従業員の感情データをリアルタイムに集計・定量的に分析・可視化できる、ロイヤルティ向上支援クラウドシステム

Page 4: 第2回 人形町Techで騒がnight

簡単に説明すると・・・

アンケートに回答して 回答を分析すると

商品の推奨度がわかる改善点がわかる改善提案ができる

Page 5: 第2回 人形町Techで騒がnight

自己紹介

三上 悟 @saicologic

所属:株式会社Emotion Tech 2017年3月入社。主にバックエンド側のエンジニアです。

最近は、分析基盤とWebAPIを作ってます。

Docker、Embulk、Digdag、AngularR、Python、Ruby、SQL、TypeScriptAWS

Page 6: 第2回 人形町Techで騒がnight

WebAPI開発に必要なドキュメントを作る話

Page 7: 第2回 人形町Techで騒がnight

課題

Front Side(Angualr)

Server Side(Rails + grape)

ここのドキュメントをどうやって管理するか?

Page 8: 第2回 人形町Techで騒がnight

現状

Excelで管理されています

・1シートに行列で管理されている

・人手で記述しているため、ソースコードとAPIドキュメントに差異がある

・APIドキュメントが最新版であることが保証されていない

Page 9: 第2回 人形町Techで騒がnight
Page 10: 第2回 人形町Techで騒がnight

開発はモダンなのに、ここだけレガシー!?

Page 11: 第2回 人形町Techで騒がnight

利便性

・ドキュメントを管理したくないから、ソースコードから自動生成して欲しい

・開発中のWebAPIのドキュメントも欲しい

汎用性

・言語が変わってもドキュメントの生成方法は同じにしたい

可読性

・リクエストの必須パラメータ/オプションが知りたい

・パラメータの意味が知りたい

・実行せずともレスポンスの結果が知りたい

・ドキュメントだけでなく実際に仮のデータで見たい

利用制限

・外部提供用のドキュメントも欲しい

欲しいもの

Page 12: 第2回 人形町Techで騒がnight

調査対象サービス/ツール 5種

・Apiary

・Swagger

・apidoc

・iodocs

・autodocs

Page 13: 第2回 人形町Techで騒がnight

Apiary・SaaS型のドキュメント管理サービス

・APIドキュメントは、Blueprint(Markdown)で記述する

・Swagger Specにも対応している

・ドキュメントの生成と同時にAPIのモックサーバーが用意される

・SaaSで利用することができる

・Private/Teamで利用する場合は、$99~・オープンソースでツールが提供されている

・API Blueprint・dredd( HTTP Testing Framework )・Apiary CLI・Snow Crash( API Blueprint Parser)・aglio (API Blueprint Renderer)

Page 14: 第2回 人形町Techで騒がnight

Apiary

https://app.apiary.io/demo547/editor

Page 15: 第2回 人形町Techで騒がnight

Swagger・SaaS型のドキュメント管理サービス

・APIドキュメントは、Swagger Spec(JSON or YAML)で記述する

・ドキュメントの生成と同時にAPIのモックサーバーが用意される

・SaaSで利用することができる(Swagger Hubと呼ばれている)

・Private/Teamで利用する場合は、$49~・オープンソースでツールが提供されている

・Swagger Editor・Swagger Codegen・Swagger UI

・SwaggerHub(Swagger Editor + Swagger UI)・Apiary Blueprintには対応していない

Page 17: 第2回 人形町Techで騒がnight

・オープンソース(Node.js)

・ソースコード内に独自記法で記述する

APIDOC Inline Documentation for RESTful web APIs

Page 18: 第2回 人形町Techで騒がnight

APIDOC

http://apidocjs.com/example/

Page 19: 第2回 人形町Techで騒がnight

iodocs Interactive API documentation system

・オープンソース(Node.js)・JSONで記述する

Page 20: 第2回 人形町Techで騒がnight

iodocs

http://localhost:3000/foursquare

Page 21: 第2回 人形町Techで騒がnight

autodocs Generate documentation from your rack application & request-spec.

・オープンソース

・rspecからMarkdown形式でドキュメントを自動生成する

Page 23: 第2回 人形町Techで騒がnight

比較表

サービス/ツール名 WebMock API Spec ドキュメント作成補助

SaaS

Apiary ○ Blueprint(Markdown) ○ ○

Swagger ○ Swagger Spec(JSON or YAML) ○ ○

apidoc × apidoc(コード内コメント) × ×

iodocs ○ JSON × ×autodocs × Ruby

(rspec) ○ ×

Page 24: 第2回 人形町Techで騒がnight

・Web Mockが欲しい => Apiary or Swagger or iodocs

・ドキュメント作成補助が欲しい

=> Apiary or Swagger

ApiaryとSwaggerのどちらにするか?

どれを選ぶか

Page 26: 第2回 人形町Techで騒がnight

Google Trends

Page 27: 第2回 人形町Techで騒がnight

Open API Initiative

Page 28: 第2回 人形町Techで騒がnight

ORACLE vs Open Community

Page 29: 第2回 人形町Techで騒がnight

オススメは、Swagger・Google TrendsだとSwagger・オープンの方が扱いやすい

・ツールが充実しているため、Swaggerのほうが良さそう

・swagger-editor Web Editor・swagger-ui Web UI・ruby-swagger APISpec(swagger.json)の自動生成

・swagger-rb APISpecのParser・grape-swagger grapeを使っている場合、swagger-uiが見れる

Page 30: 第2回 人形町Techで騒がnight
Page 31: 第2回 人形町Techで騒がnight