Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APIファーストへの挑戦 - APIエコノミーの古今未来と 成功企業が実践するAPI戦略 / ...

APIファーストへの挑戦 - APIエコノミーの古今未来と 成功企業が実践するAPI戦略 / Challenge to API-first

Presentation Slides for オルターブース Alternative Architecture DOJO SP
Session title: APIファーストへの挑戦 - APIエコノミーの古今未来と 成功企業が実践するAPI戦略
Date: 2024/10/11
Session Description:
APIエコノミーの過去、現在、未来をカバーしつつ、APIエコノミーを牽引するAPIファースト企業が実践するAPI戦略に焦点を当てた話

Yoichi Kawasaki

October 12, 2024
Tweet

More Decks by Yoichi Kawasaki

Other Decks in Technology

Transcript

  1. All rights reserved by Postman Inc APIファーストへの挑戦 APIエコノミーの古今未来と 成功企業が実践するAPI戦略 川崎庸市

    テクノロジーエバンジェリスト Presentation slides for オルターブース Alternative Architecture DOJO SP
  2. APIのトラフィック量 APIエコノミーは拡大し、 APIがWebコミュニケーションの共通インターフェースとして進化。それに伴い、世界の インターネットトラフィックに占める APIを経由したトラフィックの増加が加速している Landscape of API traffic (cloudflare)

    https://blog.cloudflare.com/landscape-of-api-traffic/ グローバルネットワークのトラフィックに占めるコンテンツの種類とAPI トラフィックの状態 2021年) API 52% 2021/02 API 54% 2021/12
  3. APIエコノミー年表 APIエコノミーにおけるビジネスモデルの変化と影響を与えた技術の年表 APIエコノミー夜明け前 APIは企業内・限定的企業間シ ステム連携にのみ ) AWS クラウド提供開始 RESTの提唱 Platformエコノミー形成

    Amazon, eBay,Salesforceな ど、APIを公開し3rdパーティ開 発者とのエコシステムを形成 ) APIエコシステムの拡張 Google, FB, Twitter, Salesforce など多くの企業が APIエコシステム を拡大し、外部連携・パートナー シップを通じた収益を拡大 ) APIファースト企業登場 Twilio, StripeなどAPI自体を製品 として外部提供で収益化。使用量 ベースの料金プラン導入 ) Swagger 2.0登場 GraphQLがOSS化 OpenAPI 3.0リリース 2000 API管理Platform普及 Apigee, MuleSoft, Postmanなど) API Marketplace/カタログ サービスの拡大 RapidAPI, API Hub, Postmanなど) API技術の進化・多様化 (gRPC, GraphQL, AsyncAPIなど) 2010 APIマネタイズの多様化 APIのマーケットプレイスを通じて APIを販売し、サブスクリプション、 使用量ベースプラン、など多様な 料金モデルが一般化 ) 2020 ノーコード・ローコード ツール普及 AIとの統合で加速 ) APIエコノミーの拡大加速 (あらゆるものが APIで連携を開始 し、企業DXを支える基盤に ) AIの民主化 スマホ普及でモバイル向 けAPI開発活発化 Facebook API公開
  4. AI - 新しい API の使い手 eコマース ソーシャル ネットワーク クラウド モバイル

    IoT AI ユーザー: もはや自然言語で指示するだけ サービス提供者: API をちゃんと作らないと AI に使ってもらえない 時間 @postman_japan
  5. In The Age Of AI, Everything Is An API AIの文脈では、APIがインテリジェント・システムと、それらがアクセスするサービスとの橋渡しの役割を果

    たす… 全てのマジックはAPIを通して起こる (抄訳) APIs act as a kind of lingua franca for different software components, providing a set of rules and protocols for them to communicate. In the AI context, they serve as the bridge between intelligent systems and the services they need to access. This is crucial for enabling “context-awareˮ interactions. Itʼs one thing for a chatbot to claim it can check real-time weather updates; itʼs another for it to actually pull this data from a weather service and present it in a user-friendly manner. This magic happens through APIs. In The Age Of AI, Everything Is An API https://www.forbes.com/sites/forbestechcouncil/2023/09/18/in-the-age-of-ai-everything-is-an-api
  6. 2023年 API アーキテクチャスタイルの利用率 RESTが支配的。ただし 2021年 92%  2023年 86%と徐々に減少傾向。続いて Webhook。SOAP利用率は昨年と比べ

    34%  26%と減退、GraphQLがその利用率を抜いた。その後に Websockets、gRPC、MQTTが続く。 REST Webhook GraphQL SOAP Websockets gPRC MQTT AMQP SSE EDI EDA https://www.postman.com/state-of-api/api-technologies Postman 2023 State of the API Report 参考
  7. APIエコノミーが拡大している技術的背景 API仕様記述フォーマットの標準化 • Swagger / OpenAPI Spec OAS: RESTful APIのためのAPI記述形式で、HTTP

    API機能を人間とコ ンピュータが理解できるようにするためのプログラム言語に依存しない仕様形式 • これらの登場により、 APIの設計、ドキュメンテーション、テストが一貫して行えるようになった 参考: What is OpenAPI ? https://blog.postman.com/what-is-openapi/ Swagger editor https://editor.swagger.io/
  8. 2023年 API仕様形式の利用・認知度 JSON Schema、Swagger/OpenAPIの利用が支配的。GraphQLスキーマが次に続く。APIアーキテクチャ利用率との関 連性が高い JSON Schema Swagger 2.0 OpenAPI

    3.X GraphQL WSDL AsyncAPI Protobuf Avro API Blueprint RAML RDF/SPARQ Thrift 聞いたことがない 知ってはいるけど 使っていない 使っている 使っている & 気に入ってる https://www.postman.com/state-of-api/api-technologies Postman 2023 State of the API Report 参考
  9. APIエコノミーが拡大している技術的背景 セキュリティと認証認可の標準化 • OAuth 2.0、OpenID Connect(OIDC)、JWT(JSON Web Token)などの認証・認可の標準が確立さ れ、API通信におけるセキュリティが向上 •

    これらにより、安全に APIを公開し利用できる環境が整い、企業が積極的に Web APIを公開・利用するよ うになっている OpenID Connect概要 OpenID Foundation Japan) https://www.slideshare.net/slideshow/openid-connect-intro-september-2013/27051056 OAuth2.0とは? ウェブサイトまたはアプリケーションが、 ユーザーに代わって他のウェブアプリがホストして いるリソースに、アクセスできるよう設計された基 準。現在、事実上、オンライン認可の業界基準 https://auth0.com/jp/intro-to-iam/what-is-oauth-2 RFC6749  OAuth 2.0 Auth framework: https://www.rfc-editor.org/rfc/rfc6749
  10. アーキテクチャートレンド - ヘッドレスAPI化 フロントエンドはバックエンドと分離されAPIを通じてデータを取得し、柔軟にUI構築が可能 MACH Microservices-based, API-first, Cloud-native SaaS, Headless

    Jamstack JavaScript, APIs Markup Composable What is MACH Architecture? https://www.sunriseintegration.com/learn/what-is-mach -architecture How do composable, headless and MACH compare? The key differences explained https://commercetools.com/blog/how-do-composa ble-headless-and-mach-compare-the-key-differen ces-explained https://www.lifeintech.com/2017/12/20/jamstack/
  11. APIファースト企業 The Third-Party API Economy. How to Give Your Users

    Superpowers by Grace Isford https://gisford.medium.com/the-third-party-api-economy-891b2a774fa5
  12. APIファースト企業は The best API-first companies give their users “superpowersˮ that

    they wouldnʼt have otherwise. The Third-Party API Economy. How to Give Your Users Superpowers by Grace Isford https://gisford.medium.com/the-third-party-api-economy-891b2a774fa5 APIファースト企業は他では得られないような スーパーパワーを提供 • 複雑なものをシンプルに提供 (それが使われていることさえ気づかせない) • 地殻変動を利用 (スマホの登場→ 非接触型決済の爆発) • ビジネスクリティカルな機能を提供 (Stripe のオンライン支払、ShopifyのEC機能、Plaid の銀行接続、Twilio のメッセージング)
  13. XaaSの広がり さまざまなビジネス機能をサービスとしてAPIを通じて利用者に公開 aPaaS Application) Heroku、OutSystems AIaaS AI Azure AI services,

    Google AI CPaaS Communication) Twilio, Vonage IDaaS Identity) Okta, Auth0, EntraID iPaaS Integration) MuleSoft, Zapier, Warkato BaaS Backend) Firebase, AWS Amplify
  14. APIエコノミー年表 - この先 APIエコシステムの拡張 Google, FB, Twitter, Salesforce など多くの企業が APIエコシステム

    を拡大し、外部連携・パートナー シップを通じた収益を拡大 ) Swagger 2.0登場 GraphQLがOSS化 OpenAPI 3.0リリース API管理Platform普及 Apigee, MuleSoft, Postmanなど) API Marketplace/カタログ サービスの拡大 RapidAPI, API Hub, Postmanなど) API技術の進化・多様化 (gRPC, GraphQL, AsyncAPIなど) APIマネタイズの多様化 APIのマーケットプレイスを通じて APIを販売し、サブスクリプション、 使用量ベースプラン、など多様な 料金モデルが一般化 ) 2020 ノーコード・ローコード ツール普及 AIとの統合で加速 ) APIエコノミーの拡大加速 (あらゆるものが APIで連携を開始 し、企業DXを支える基盤に ) AIの民主化 ソフトウェアコンポーネントの Webインターフェース としてのAPI より一層、抽象化と標準化が進 みあらゆるものがAPIで連携し ていく
  15. 良いAPIとは? Good APIs tend to offer clarity (of purpose, design,

    and context), flexibility (ability to be adapted to different use cases), power (completeness of the solution offered), hackability (ability to pick up quickly through iteration and experimentation), and documentation. In a book - Designing Web APIs - building that developers love by Chris Messina, developer experience lead at Uber (意訳) 通常、良いAPIは、目的・設計・文脈が明確であり、 柔軟性があり、提供されるソリューションに完全性があり、 すぐに理解できて、ドキュメントが提供されています。
  16. API開発にまつわるさまざまな課題 • UI / UX ◦ 利用者ニーズ、シナリオにマッチしない ◦ 再利用性 /

    汎用性がない • セキュリティ ◦ 十分な認証・認可、セキュリティ対策がされていない • スケーラビリティ、パフォーマンス ◦ パフォーマンスや拡張性がない • バージョン管理 ◦ バージョン管理が不十分、互換性が維持されない • ドキュメンテーション ◦ ドキュメントが分かりづらい、古い、存在しない、見つからない • エラーハンドリング ◦ 適切なエラーハンドリングがされていない、信頼性が低い • API設計のベストプラクティス ◦ API標準化仕様がサポートされていない、再利用性 / 汎用性がない • テスト ◦ API品質確保のための十分なテストがされていない。また、継続的にテストされていない
  17. 2023 State of the API Report https://www.postman.com/state-of-api/executing-on-apis/#obstacles-to-consuming-apis #1 ドキュメント不足 52%

    #2 APIの発見が困難 32% #3 時間がない28% #4 知識不足26% #5 予算不足23% #6 人員不足22% #7 APIの再利用が困難 19% API利用における障壁
  18. APIドキュメンテーションの課題 • 開発者体験が低いフォーマット ◦ 独自形式、機械が読めない、相互運用性がない・・・ • 不十分な説明 ◦ 機能説明、認証認可方式、クイックスタートがない •

    一貫性のない命名規則、フォーマット ◦ 命名規則が一貫していないため、混乱を招く • エラーハンドリングの欠如 ◦ エラーメッセージ、ステータスコードの説明 • アップデート ◦ 古い情報、更新されていない情報 • 不十分な使用例 / サンプル ◦ どのように利用すればいいか分からない @postman_japan
  19. 品質担保のためには質の高いテストが必要 E2E Integration API Unit コスト 実行時間 不確実要素 テスト数 テストのピラミッド

    • UIテスト • E2Eテスト • リグレッションテスト • スモークテスト • インテグレーションテスト • コントラクトテスト • コンポーネントテスト • ユニットテスト • セキュリティテスト • ユーザビリティテスト • パフォーマンステスト 機能要件テスト 非機能要件テスト
  20. 組織開発における課題 • コミュニケーションとコラボレーション ◦ チーム間コミュニケーションや連携の不足や誤解 ◦ 作業の重複、一貫性のない作業プロセスやアウトプット • セキュリティとガバナンス ◦

    APIセキュリティポリシー、ガバナンスポリシーの策定と遵守 • プロジェクト管理 ◦ 並行開発における複雑化するスケジュール管理、リソース配分、進捗管理、依存管理 • 標準化と一貫性 ◦ 難易度が高いAPI設計、コーディングスタイル、ガイドラインの標準化 • テストと品質保証 ◦ 包括的なテスト計画と自動化テストの導入、それらの継続的な実施 • ドキュメント整備 ◦ 関係者向けのドキュメントの整備、公開、それらの継続的な更新 @postman_japan
  21. Time to First Call TTFC どれだけ短時間でAPIの初回呼び出しができるかを表すメトリクス。API提供者はTTFC を分析しAPIを改善し、その短縮を目指す • Web分析やユーザーフィードバックにより測定 ◦

    Web分析計測:発見時点 Web サイトへの訪問、サインアップなど) から最初のAPI 呼び出しまでの時間差 • メトリクス分析からの洞察 ◦ 開発者が閲覧からサインアップまでに費やす時間が長い場合 → Webサイトやドキュメントの品質に起因する可能性 が考えられる ◦ サインアップから最初の API 呼び出しまでの時間が長い場合 → ガイドページの有効性や製品の使いやすさに起因 する可能性が考えられる APIの開発者体験を左右する「 Time To First Call」とは? Postmanで実現する APIファーストな開発 https://codezine.jp/article/detail/20087
  22. APIファースト企業が追求する Good APIs特性 Good APIs特性 開発者体験がよいインターフェース 優れたTTFC体験 発見しやすい 持続性・継続性がある 高い信頼性がある

    APIファースト開発 ドキュメント、サンプル 開発者ポータル、サンドボックス環境 APIカタログ、マーケットプレイス ライフサイクル全般にわたる API管理 フィードバックループ APIセキュリティ・ガバナンス コラボレーションしやすい環境・組織体制
  23. APIはプロダクト API as a Product) • APIをプロダクトとしてAPI中心で考える ◦ APIは主要ソフトウェア構成要素、主要ビジネスアセット ◦

    APIがビジネスにもたらす価値に焦点を当てる ◦ 内外サービスをAPIを通じて活用しビルディングブロックで構築 • APIファースト採用のために必要な取り組み ◦ APIライフサイクル全体で取り組む ◦ APIの継続的な保守・運用のためのチーム体制を構築する @postman_japan APIファーストの世界 https://api-first-world.com/ja/
  24. APIファースト開発モデル • 焦点はAPIの設計(システムの抽象的な「契約」) • コードを書く前にAPIを設計・構築し、モック、ドキュメント、テストも作成 • 設計フェーズでフィードバックループを通じて設計内容を洗練化 API-first software development

    for modern organizations  https://medium.com/better-practices/api-first-software-development-for-modern-organizations-fdbfba9a66d3 API設計 テスト APIドキュメント 作成 モック作成 実装 コーディング 統合 テスト実行 監視実行 サーバー環境 Dev Stage Prod モック活用 テスト ドキュメント 活用 コードリポジトリ モックを元にレビューや フィードバックを受け 設計内容を洗練させる check-in デプロイ エンドポイント にテスト API開発環境 @postman_japan
  25. 開発者体験が良いWeb API設計 代表的なAPI設計指針 • ユーザーファースト ◦ API設計をユーザーの視点から行う • RESTful原則の遵守 ◦

    リソース、エンドポイント、 HTTPメソッドなど • エラーハンドリング ◦ エラーハンドリングの仕組み、一貫性のあるエラーコードやメッセージ、適切なス テータスコード • バージョニング ◦ しっかりバージョン管理、互換性を維持 • セキュリティ ◦ 適切な認証・認可メカニズムの導入やデータの暗号化、など • 性能と拡張性 ◦ リクエストとレスポンス最適化、キャッシング戦略、など • クリアなAPI仕様とそのドキュメント • Vinay Sahni Enchant Co-Founder): Best Practices for a Pragmatic RESTful API • Zalando: Zalando RESTful APIガイドライン • Microsoft: RESTful Web API の設計
  26. ライフサイクル全般にわたるAPI管理の取り組み 定義 設計 開発 テスト セキュリティ デプロイ 監視・観測 ビジネス システム

    Security ・・・ ドキュメント コード管理 システム設定 モック API Contracts (スキーマ) APIサーバー 開発 API Gateway 開発 トラフィック キャプチャ セキュリティ テスト 要件 Postman コレクション generate パフォーマンス テスト Contracts テスト E2E テスト ソースコード 成果物 commit 自動テスト APIサーバー Build/Deploy API Gateway Build/Deploy CI/CD ・・・ 配布 モニター アラート APM レポート APIカタログ API 開発ポータル trigger integration trigger ユーザー フィードバック Feedback loop UIテスト Stub generate Postmanを活用したAPI開発ライフサイクルにおける各ステージの施策例
  27. APIセキュリティとガバナンス • ライフサイクルで一貫したセキュリティやガバナンス対策の実施 • できるだけ早い段階から (シフトレフト) + 継続的に実施 APIセキュリティ API

    が組織が設定したセキュリティルールに従ってい るか確認・管理する。APIスキーマやレスポンスなどを チェックして開発者にセキュリティガイドラインを提供。 後回しにできない作業。 APIガバナンス API が組織が設定した標準ルールに従って設計、構 築、テスト、配布されることを管理・保証すること。全て のAPIにわたり品質、一貫性、セキュリティ、コンプラ イアンスを目指す。 Define Design Develop Test Deploy Observe Distribute check check check check check 後ろのフェーズになればなるほど改修コストが大きい What's changed in the Top 10 for 2021 in OWASP TOP10 https://owasp.org/Top10/