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

第2回 人形町Techで騒がnight

Jan 23, 2018

Download

Technology

satoru mikami
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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