ハイパーメディアのハイプマンに会う:マイケル・ヒベイ氏との対談

  2018年2月15日

SwaggerブログではREST APIについて多くの記事を書いてきましたが、APIの世界全体から新しい視点を提供できるよう常に模索しています。

Michael Hibay linkedin

ハイパーメディアベースのAPIは、ますます多くの熱心なコミュニティによって支持されています。APIエバンジェリストでありAPIアーキテクトでもあるマイケル・ヒベイ氏もその一人で、ハイパーメディアの利点、その落とし穴、そしてそのスタイルを効果的に採用する方法について、テクノロジーの世界に積極的に教育を行っています。

従来のHTTP REST APIは複数の種類の呼び出しを処理するのに優れていますが、バージョン管理と非推奨の処理という問題は、クライアントとサーバーの進化可能性に悪影響を及ぼす重要な制約となります。ここで、Hypermedia as the Engine of Application State(HATEOAS)というアーキテクチャスタイルが役立ちます。

HATEOAS APIは、サーバーとクライアントを効果的に分離するのに役立ち、互いに依存することなく独立して進化および更新できます。このアーキテクチャスタイルにより、応答コンテンツでハイパーメディアリンクを使用できるため、クライアントはこれらのハイパーメディアリンクをたどることで適切なリソースに動的にナビゲートできます。

私はマイケル氏と話す機会があり、彼の好きなトピックについて彼の意見を伺い、またOpenAPI Specification — OAS 3.0の最新の進化についても彼の考えを聞きました。

ハイパーメディアに興味を持ったきっかけは何ですか?

Swaggerが、実は私がハイパーメディアに興味を持った最初のきっかけです。あるアプリケーションのOpenAPI Specificationプロファイルを作成し、HATEOAS(Hypermedia as the Engine of Application State)の要素を組み合わせるという仕事を任されました。HATEOASの概念については知っていましたが、それほど深くはありませんでした。ハイパーメディアベースのコードライブラリや製品サポートについて深く掘り下げていくうちに、ますます興味を持つようになりました。

そのプロセスを通じて教育を受け、「これはできない、そして私だけでなく誰もできない、なぜなら現時点ではこれらを一緒に実行することはできないからだ」と学びました。調査を始めると、私はその穴にどんどん深くはまり込み、見つけた解決策はハイパーメディアでした。

私が時間が経つにつれて発見したことの一つは、コミュニティ内で時折見られる不安です。ハイパーメディアにはその評判から来る荷物もあり、多くの人々の視点を変えるだけでなく、私が知っていること、学んだことを活用して他の人々が抱える問題を実際に解決するのに役立てる必要があります。

組織がハイパーメディアを採用することの利点とは何だと思いますか?

組織的かつ実用的な観点から見ると、ハイパーメディアはAPIの利用の複雑さを大幅に軽減します。また、インフラコストも最小限に抑えられ、適切に実行および実装されれば、APIの更新と保守に必要な考慮事項を大幅に削減できます。

組織がREST API開発にハイパーメディアベースのアプローチを採用すれば、API構築の学習曲線は非常に短くなります。これにより、開発者ははるかに生産的になり、リソースの割り当てが非常に容易になります。ハイパーメディアは主に長期的なメリットがあり、組織的な観点から見ると、総所有コストの25%程度がAPIの実際の初期開発期間に費やされ、残りの75%は製品リリース後のあらゆるものに費やされるでしょう。

ハイパーメディアの特性は、APIの長期的な進化可能性と長期的なコストをはるかに低減させることに貢献します。なぜなら、ハイパーメディアの根本的な特性は、時間とともに形を変え、進化しやすいという点にあるからです。OpenAPI Specificationが提案するように、クライアントがサーバーに密接に結合されていない場合、組織は運用に集中し、必要に応じて表現を変更する自由度がはるかに高まり、それらの変更を非常に容易に行うことができます。

ハイパーメディアの採用には組織にとって多くのメリットがあるようですね。組織が直面するであろう課題や抵抗は何だと思いますか?

決まり文句の脚注は常に、ハイパーメディア開発を容易にするために必要なツールが開発されていないというもので、それは事実です。特に消費の側面がある場合、ハイパーメディアを念頭に置いてAPIを設計することを理解するのも困難です。消費者は通常、CRUD APIとの統合に慣れています。彼らの「CRUD APIを探しているのに、これはCRUD APIに見えない、どうすればいい?」という態度を変えるのは難しいです。教育には多くの浸透と採用の課題が立ちはだかっています。

しかし、最近私が気づいたのは、最大の課題は、多くの業界が間違ったことに焦点を当てているということです。優れたハイパーメディアフォーマットや素晴らしいリソースはたくさんあり、それらを使えばハイパーメディアを容易にすることができますが、クライアントに焦点が当たっていません。ハイパーメディアはクライアントを容易にすることです。そして、これが現時点での最大の障壁だと私は考えています。それは、熟練していない、技術的知識のない消費者でもAPIを利用できるレベルまで障壁を下げる汎用クライアントの欠如です。ハイパーメディアの進化可能性の力と、コマンドラインでCURLを使ってCRUD APIを呼び出すシンプルさを組み合わせたクライアントです。そして、それが本当に主要な焦点となるべきだと思います。実際、今年のAPI Strategy & Practice Conferenceでの私の講演はそれについてでした。

よくおっしゃいました!課題に関する前回の回答で設計について触れられましたが、業界がハイパーメディアの設計にどのように取り組んでいるかをお聞きしたいです。

ハイパーメディアAPIとCRUD APIの設計を比較する場合、まずドメインについて話す必要があり、その後にドメインモデルを含むすべてをドメイン自体からモデリングします。リソースとその機能について話し、そこから逆算して作業を進めます。

すべてが静的に結合されているOASに詳しい人々を、すべてが動的である環境に投影するのは困難です。しかし、私が重要だと考えるのは、ハイパーメディア設計を行う場合、私が「設計範囲」と呼びたいものを実際に確立するということです。基本的に、語彙、ドメインモデルを記述し、次に開発技術の観点から日常業務のツールとテストを行うためのプロトコルバインディングを使って逆算して作業を進めます。ドメインから逆算し、次にそのプロトコル(それが何であれ)に一時的にバインドします。そして、組織外の制御できない消費者が、時間の経過とともに変更されるURLのようなものに縛られないように、クライアントが特定のライフサイクルを超えてそれらの定義にバインドしないようにします。

ハイパーメディアを採用した組織はありますが、消費者による採用が非常に困難なため、この採用は臨界量に達していません。成功を収める企業の多くは、クライアントの視点からアプローチし、実際にクライアントを制御しています。

ハイパーメディア形式を採用し、成功を収めている組織やAPIの具体的な良い例は何だと思いますか?

Comcastは、私が最も成功裏に、かつ大規模にハイパーメディアを使用していると見ている最大の組織の1つです。私は間違いなく、常により多くの情報を見つけるためにアンテナを張っています。

OpenAPI Specification 3.0は、ハイパーメディア中心の組織に対応できると思いますか?もしOpenAPI Specificationとハイパーメディアの準拠率を概算で言うとすれば、人々はデータが好きなので、どのくらいだと思いますか?

OpenAPI仕様は基本的に素晴らしい作品であり、多くの賢い人々が物事を整理するために素晴らしい仕事をしました。私はそれが正しい方向に向かっていると信じており、ハイパーメディア愛好家が素晴らしいAPIを設計するのに間違いなく役立つでしょう。

OAS 3.0がHATEOASベースのアーキテクチャに完全に対応していない箇所がまだありますが、これはこれらの問題を解決するために構築されたものではないため、当然のことです。ハイパーメディアの動的な性質は、運用上および進化上の困難を引き起こしません。OASは基本的に静的な設計フレームワークです。インターフェースを静的に定義し、それを世界に公開される実際の表現(URL)にバインドすると、全世界が購読する契約を作成したことになります。契約に何らかの変更を加えると、消費者に波及効果をもたらし、そのすべてがHATEOASが実現する疎結合されたクライアントサーバーの基本的な性質に反します。

しかし、ほとんどの場合、最新の仕様は2.0に存在した抜け穴を非常にうまく特定したと思います。OAS 3.0は、フォーマット内の以前の矛盾を解消し、設計者が不必要に複雑なフォーマットを持つことなく、素晴らしいAPIを設計できるようにしました。

開発者アドボカシーとテクノロジーエバンジェリズムに興味を持ったきっかけは何ですか?

[笑い] 私はテクノロジーアドボカシー全体の分野では新参者です。これに足を踏み入れた動機は、開発者が私がこれまで直面してきたのと同じ問題に直面しないように本当に助けたいという気持ちです。私はさまざまな業界で、大企業から中小企業、小さなスタートアップまで、あらゆる種類のAPI開発を経験してきました。私は、人々が私と同じ過ちを犯さないように、そして私のキャリアで回り道が難しかったギザギザな部分や障害をなめらかにするのを本当に助けたいのです。

マイケル・ヒベイ氏へのインタビューは、Swaggerブログの専門家インタビューシリーズの一環です。 OpenAPI Initiativeのダレル・ミラー氏への人気インタビューもぜひご覧ください。