blog

JavaOne 2013:RESTとJSONを組み合わせてAPIを作成する

JavaOne2013で、Stormpath社のCTOであるLes Hazlewood氏は、次のように述べています。聴衆からの声に応えて、Hazlewood 氏は火曜日の JavaOne ステージに戻...

Jan 27, 2022 · 4 min. read
シェア

JavaOne2013でStormpath社のCTOであるLes Hazlewood氏は、ウェブアクセシブルなアプリケーションプログラミングインターフェースの作成は難しくないが、十分に機能し信頼できるAPIの構築は難しい、と述べました。聴衆からの声に応えて、Hazlewood 氏は火曜日の JavaOne ステージに戻って、JAX-RS と Jersey を使用して優れた REST + JSON API を作成する方法を説明しました。

「優れた具現化状態転送APIは、バックエンドのメカニズムが実際にはかなり複雑であっても、表面上はシンプルであるべきです」と、Hazlewood氏はプレスとの紹介セッションで指摘しました。APIの焦点が情報を収集し、各情報に個別の表現を提供することであるならば、API内の収集と検索のメカニズムを単純に切り取るだけで、直感的で決して複雑ではない、シンプルだが見事なソリューションが出来上がります。

レス・ヘーゼルウッド

なぜJava開発者はREST APIを喜んで試すのでしょうか?

Les Hazlewood氏:RESTは、既存のHTTPの上に構築されたアーキテクチャ・スタイルのセットです。データの交換や作成、読み取り、更新、削除の方法は、TP仕様で定義されています。STは、切断されたデバイスで読み出し可能な情報を作成する際に、与えられた状況で何をすべきかを決定する責任を負うことができます。

これがRESTの主な役割です。互いに関係のないデバイス間でこのような操作が行われた場合、どのように処理されるべきかを管理するのです。RESTはHTTPをベースにしているため、uxデバイス、wsデバイス、apple acデバイスの間で通信することが可能です。つまり、STは特定のプラットフォームやベンダーに限定される必要はありません。TPはあらゆる場所に存在するため、STは幅広く動作します。

誰の目から見ても、RESTはそれ自体が分かりにくいため、単純すぎると思われがちです。誰もがHTTPを知っていると思っているのは、ebブラウザがまさにそのように動作しているように見えるからです。技術者はTPプロトコル、IT、STを理解しています。また、STはTPプロトコルを使っているため、開発者はTPプロトコルの実際の複雑さを過小評価するのが常です。実際、今日のSTのサービスはML以上のものです。

RESTを使う上での難しさは何ですか?

Hazlewood氏:RESTは、正式な標準や使い方の仕様がないアーキテクチャ・スタイルです。このスタイルを理解するには、そのスタイルに注釈を付ける必要があります。そうしないと、ユーザーによって機能の理解度や有効性にある程度のばらつきが出てしまいます。というのも、RESTはデバイス間でそのまま再現できる仕様の集合ではなく、人の手が介在することで曖昧さが生じる可能性があるからです。RESTとJSONはシンプルで、HTTPもシンプルですが、特定の問題を解決するためにこれらのメカニズムを組み合わせるとなると、確立された成熟したガイダンスを見つけるのに苦労します。

JavaOneの紹介セッションで、JSONとRESTの組み合わせを提案した理由は他にありますか?

ヘイズルウッド:RESTとJSONは、より人間的なデータ表現方法を提供します。XMLほど混雑しておらず、肉眼で直接見るのも簡単です。それがJSONが広く採用されている理由です。

JSONは構文規則です。一言で言えば、文字列、数値、null、non-nullです。これにより、誰もが複雑な状況を、少量のメタデータで非常にシンプルな形式で表現することができます。さまざまな環境で簡単に使用できます。機械が解析するのも簡単ですし、人が直接読むのも簡単です。

JavaScriptは、今日世界で最も影響力のある重要なプログラミング言語の1つです。主にJava、Python、またはC#で書かれたアプリケーションであっても、Webページや直感的なユーザーインターフェースになると、助けになるのはJavaScriptです。JSONはJavaScriptと完全に互換性があり、JavaScriptプログラミングの経験がある技術者であれば誰でも簡単にマスターできます。すでにJavaScriptを扱ったことがあれば、APIと統合することは難しくありません。APIがJSONを返し、すでにJavaScriptでコーディングしている場合、プログラミング言語自体がサーバーから送られてくるデータをどのように解釈するか知っています。

JSONはいつ適切で、いつ適切でないのでしょうか?

Hazlewood:データ複製アーキテクチャの点では、XMLの方が優れていることは明らかです。XMLドキュメントは、そこに含まれる情報が豊富で、その中でのデータ型の分割がより効率的です。XMLはデータ交換タスクを処理するのに適していますが、使い勝手が悪いため、開発者は敬遠しがちです。JSONのコンテンツは直感的に読むのに適していますが、XMLは設計が複雑です。JSONの構文はシンプルで理解しやすいです。言語設計に関して言えば、JSONには、すべての開発の基礎となる非常に限られた数のコア要素があります。その驚くべきシンプルさのおかげで、簡単に操作し、理解することができます。ただし、デバイスの消費情報に関しては、JSONは、デバイスの直接処理に適しているXMLほどには機能しません。

Read next

ファーウェイ梁永建:LTEは強力なICT推進力になる

ファーウェイ・エンタープライズ・ビジネスCTOのLiang Yongjian氏は、「Mobile Lights up Smart Cities」の基調講演で、LTEは政府、交通、エネルギー、中小企業(SMEs)のICTを変える強力な原動力になると述べました。

Jan 14, 2022 · 2 min read