SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 セッションレポート(AD)

Web開発者必見! 現場で役立つAPI設計のポイントを先人に学ぼう

【14-A-5】現場で役立つAPIデザイン

  • X ポスト
  • このエントリーをはてなブックマークに追加

キャッシングの適切なコントロールでAPIを高速化

(5)よく使うデータをキャッシュしてAPIを高速化する

 APIを高速化しつつ、正確なデータを、意図したタイミングで確実に届けるためには、キャッシングの適切なコントロールが欠かせない。データの鮮度が重要か否か、更新頻度の多寡など、APIが提供するデータの性質に応じて、Cache-Controlヘッダのパラメータを適切に設定する必要がある。ケースに応じたパラメータ設定は下記のフローチャートを参考にしてほしい。

 
https://web.dev/articles/http-cacheの図を元に、講演者が作成したフローチャート

 またAPIから大量のデータを返す際は、クエリパラメータによるページネーションで、レスポンスを分割して返す。逆にAPIが大量のデータを受け取る場合は、バッチ処理用のエンドポイントを用意する。項目ごとに都度APIを呼び出すとオーバーヘッドが増えるので、配列としてまとめてデータを渡すのが定石だ。またバッチ処理やアップロードなど時間がかかる処理には、ロングランオペレーションという実装が必要になる。具体的には処理の開始、状態の確認、キャンセル用など、複数のエンドポイントを用意し、クライアントがそのURLを定期的にポーリングして状態を確認する方法。あるいは処理が完了した際にWebhookコールバックを通じて通知を受け取る方法がある。

(6)目的にあった認証・認可方式を選定

 パブリックAPIにおいて、認証と認可は必要不可欠だ。APIの呼び出しごとに認可サーバへ問い合わせを行うと、オーバーヘッドが増加してしまうことがある。トークンの有効期限、トークンの長さをどうするか、毎回権限をチェックする必要があるのかといった点を、セキュリティ面と利便性の両面から総合的に判断し、最適な認可方法を選ぶことが必要だ。他にも、異なるオリジンにリクエストが必要な場合のCORS関連ヘッダによるアクセス制御、APIへの一定時間内の大量アクセスを制限するためのレートリミットなど、APIセキュリティを担保するためのさまざまな仕組みがある。

(7)APIの使い方を明確かつ詳細に説明するドキュメントを作る

 草薙氏が最後に強調した重要なポイントは、APIドキュメントをしっかり作成することだ。現在は、OpenAPI仕様に従って、API仕様書とドキュメントを作成する方法が一般的だ。この仕様に従うことで、人間と機械の双方が理解しやすくなり、テスト、モックの自動生成も容易になる。

 ただし、OpenAPI仕様だけでは開発者にとって十分な情報を集約するには限界がある。そこで草薙氏が紹介したのが、API管理プラットフォーム「Postman」のコレクション機能だ。これは、APIの仕様書と実行可能なAPIを一体化した、いわば実行可能なAPIドキュメントのようなものだ。これらのツールを活用することで、API開発者の作業負担を大幅に軽減できると、草薙氏は言う。

 
 Postmanコレクションの概要

 最後に草薙氏は、成長を続けるPostmanコミュニティの活動を紹介して、講演を終えた。

 「私たちは、Postmanのユーザーコミュニティによる勉強会やワークショップを頻繁に開催している。connpassページでのイベント情報に加え、XやDiscordでも情報発信をしている。Postmanコミュニティに、ぜひ足を運んでみてほしい」

Postmanコミュニティに参加しよう!

 Postman Connpassグループでは、Postman主催のイベント・オンラインワークショップ情報の配信と参加登録を受け付けています。また、Postman JapanコミュニティDiscordでは、プロダクト・イベント情報や、Q&A、ユーザー同士の交流が行われています。ぜひご参加ください。

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2025 セッションレポート連載記事一覧

もっと読む

この記事の著者

Innerstudio 鍋島 理人(ナベシマ マサト)

 ITライター・イベントプロデューサー・ITコミュニティ運営支援。 Developers Summit (翔泳社)元スタッフ。現在はフリーランスで、複数のITコミュニティの運営支援やDevRel活動の支援、企業ITコンテンツの制作に携わっている。 Twitter:@nabemasat Facebook Web

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

篠部 雅貴(シノベ マサタカ)

 フリーカメラマン 1975年生まれ。 学生時代、大学を休学しオーストラリアをバイクで放浪。旅の途中で撮影の面白さに惹かれ写真の道へ。 卒業後、都内の商業スタジオにカメラマンとして14年間勤務。2014年に独立し、シノベ写真事務所を設立。雑誌・広告・WEBなど、ポートレートをメインに、料理や商品まで幅広く撮影。旅を愛する出張カメラマンとして奮闘中。 Corporate website Portfolio website

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:Postman株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21073 2025/04/03 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング