開発者ライフハック:APIドキュメントを手書きするムダ時間をゼロにした方法

この記事では、ドキュメント作成を変革し、開発者の仕事のやり方を変えているEchoAPIについて探っていきます。

APIの開発において、開発者が最も苦痛と感じることの一つがAPIドキュメントの作成です。時間もかかり、ミスもしやすいこの作業に、ベテラン開発者でさえうんざりするものです。しかし、もしそのプロセスを単なるワンクリックで済ませられるツールがあったらどうでしょうか?この記事では、ドキュメント作成を変革し、開発者の仕事のやり方を変えているEchoAPIについて探っていきます。

オレ、ジョシュ。
バックエンド開発歴8年、API職人やってます。

API開発?
はいはい、お手のもんです。

徹夜?
やったことないエンジニアなんているの?

でもね、一つだけ未だにトラウマ級の案件があるんです。

そう、それが…
APIドキュメント作成。

APIが完成した瞬間って、ほんと複雑な気持ちになるんですよね。

片方では「ヨッシャー!動いた!」って勝利の雄叫びをあげてるのに、
もう片方の脳内では「うわ…ドキュメント書かなきゃ…」と現実が襲ってくる。

ドキュメント用のプラットフォームを開いて、エンドポイント書いて、リクエストパラメータもレスポンスの中身も全部リストアップ…

魂、持ってかれます。マジで。

pencil-2878764_1280.jpg

コードは書き終わった、でも地獄はこれからだ

最近、某決済ゲートウェイの連携が終わって「さぁ次の機能行くぞ!」ってノリノリだったんです。

でもそこで気づくわけですよ。
あ、APIドキュメント書いてない…。

paymentAmountだの、currencyCodeだの、userTokenだの、あれこれ書かないといけないし、
しかもどれか一つでも漏れたら、フロントの人から

「このフィールド、ドキュメントにないけど?」

ってSlackで即座に突っ込まれる。

クライアントからは

「あの〜、couponCodeってボディのどこに入れればいいんでしたっけ?」

とか聞かれて、もう頭真っ白。
だって、書いたの先週だよ?コード見ないとわかんねーって。

こんな感じのAPIなんですけど:

POST /api/v1/payment/charge
Content-Type: application/json
Authorization: Bearer {access_token}

{
  "paymentAmount": 100.00,
  "currencyCode": "USD",
  "userToken": "user12345",
  "couponCode": "DISCOUNT10"
}
  • paymentAmount: 課金金額(必須)
  • currencyCode: 通貨コード(必須)
  • userToken: 実行ユーザーのトークン(必須)
  • couponCode: 割引コード(任意)

で、ドキュメント見ながら「えっ…couponCodeってちゃんと書いたっけ?」ってなって、
通貨のバリデーションについても書いたかどうか記憶が飛んでる。

一文字の追加が、阿鼻叫喚の始まり

ユーザー情報更新のAPIに、addressって新しい項目を「ちょい足し」したんですよ。

実装はOK。でもドキュメントが問題。
「アドレスって必須だっけ?任意だっけ?」って、昨日の自分に裏切られてる。

POST /api/v1/user/update-profile
Content-Type: application/json
Authorization: Bearer {access_token}

{
  "userToken": "user12345",
  "fullName": "John Dunn",
  "email": "john.dunn@example.com",
  "address": "1234 Elm St, SomeCity, SC, 12345"
}
  • userToken: ユーザー識別トークン(必須)
  • fullName: 氏名(任意)
  • email: メールアドレス(任意)
  • address: 配送先住所(任意)

でもドキュメントには「addressは必須」って書いたままだった…。
案の定、フロントエンドから突っ込み入るんですよ。

「えーっと、ドキュメントと実装、違ってますよね?」

ピコンッてSlackの通知。
冷や汗。心拍数上昇。
そして2時間後にプルリク出し直す羽目に。

リリース直前、祈る気持ちで Ctrl+C → Ctrl+V

深夜に新機能作って、「よし終わったー!寝るぞー!」って思ったその瞬間。

「……やっべ、ドキュメント忘れてた」

「朝イチでコーヒー飲みながら書けばいいや」とか甘いこと言って、
気づけば朝5時。

カフェイン切れの状態で、見慣れたドキュメントツールとにらめっこ。
もうね、日本語なのに日本語に見えない。

「emailのバリデーション条件って書いたっけ?」
「レスポンス形式、何だったっけ?」

あのときの俺、完全にゾンビ。
しかもリリース当日。死亡フラグ確定。

EchoAPI:ドキュメント?ポチッとな、終了!

そんなある日。
同僚が言ったんですよ。

「ジョシュさん、EchoAPIって知ってます?ドキュメント、一発で作れるらしいですよ」

……まさかね?マーケティングトークでしょ?

でも一応試してみたら…

[ワンクリックでドキュメント完成]

ポチッ。

……画面に、奇跡が起きた。

  • エンドポイント → 自動認識
  • HTTPメソッド → 自動判別
  • 項目の説明 → DBコメントから引っ張ってきてくれる
  • レスポンス例 → 自動生成

え、ちょっと何これ、神か?

EchoAPIの魔法

例えばこんな感じのAPIがあったとして:

0:00
/0:14

EchoAPIがあれば、ドキュメントは勝手に、しかも正確に作成・更新されるんです。

そのとき、気づいたんです。

「……APIドキュメントって、地獄じゃなくてもよかったんだ」

さようなら、深夜のドキュメント地獄

今では:

  • API作った? → **[ワンクリックでドキュメント完成]**ポチ、終了
  • 仕様変更? → またポチで即反映
  • フロント? → 静か。超平和。
  • 昔は21時半まで残ってたけど、今は19時前に帰宅

そして何より、空いた時間でコード書いたり、API設計を磨いたり、ちゃんと「エンジニアっぽい」仕事ができるようになった。

もし今、隣で新入りくんが

(うぅ…ドキュメント地獄…)

ってうなだれてたら、
そっと肩を叩いてこう言ってあげます。

「お疲れ。
EchoAPI、使ってみ?
世界、ちょっと優しくなるから。」