Editor's pick

Explore categories

Latest articles

API for dummies
ウェブデータ
誰でもわかるAPI:APIについて学ぶ
アプリケーションプログラミングインターフェース(API)は、異なるソフトウェアコンポーネントが互いに通信できるようにするための標準およびプロトコルを定義します。これにより、アプリケーションは、独立したシステムからデータやアクションを要求できます。 APIはどこにでもあります。使用するデバイスやソフトウェアとのすべてのインタラクションは、事実上、APIにより支えられています。例えば、スマートフォンのアプリはAPIを使ってサーバーからデータを取得し、iOSとAndroidが提供する別個のAPIを使用してデータを画面に表示したり、プッシュ通知で送信したり、連絡先と共有したりします。 APIには非常に多くの形式があるため、それらがどのように組み合わされているかを理解しようとすると混乱するかもしれません。APIにはどのような種類があるのでしょうか?どのような場合にAPIとして認められるのでしょうか?独自のものを作るにはどうすればよいですか?この包括的なガイドで、これらすべての疑問に対する答えを学べます。 APIとは何か? アプリケーションプログラミングインターフェースという用語は難解に思えるかもしれませんが、これは特定の概念を指す言葉です。最も単純に言えば、APIとは開発者がアプリケーションで動作するコードをプログラムできるようにするものです。これは、相互運用性を促進するインターフェイス、あるいは2つ以上のシステムが遵守しなければならない規則、手順、期待、標準を定めています。 この点を、例を挙げて探ってみましょう。新規ユーザーを登録するためのAPIを公開するIDプラットフォームについて考えます。外部アプリケーションは、APIを使用してオンデマンドでユーザーを作成できますが、これが機能するためには、データはプラットフォームが期待する形式でなければなりません。 このAPIは、次の要件を定めています。クライアントアプリケーションがexample.com/usersにHTTP POSTリクエストを行う必要があること、Name、Email、Passwordデータフィールドを含める必要があること、および新しいユーザーのIDを含むJSONボディがレスポンスとして発行されることです。この情報を使用すると、開発者はAPIを使って新規ユーザーを正常に登録できます。 基本的にAPIとは、開発者が呼び出すことのできるプラットフォームコードと、その使い方を説明するドキュメントの組み合わせです。 APIが重要な理由 APIはシステム間のデータフローを可能にします。これにより、他のアプリケーションの上にソフトウェアを構築することができるため、より強力なソリューションを生み出すことができます。 APIは自動化にも欠かせません。異なるAPIの機能を1つのアプリケーションに統合することで、アクションやイベントの発生に合わせてデータをシステム間で移動できます。開発者は数行のコードを書くだけで、従来なら骨の折れる手作業によるプログラミングが必要だった複雑なプロセスを実装できるのです。 例えば、ウェブスクレイピングは複雑なタスクです。効果的なウェブスクレイパーを実装するには、開発者はウェブブラウザのインスタンスを制御し、ジオロケーションプロキシを設定し、CAPTCHAを回避する洗練されたロジックを作成する必要があります。APIを選択することで、これらの機能すべてに数回のネットワークリクエストでアクセスできます。その後、他のAPIを使用して、スクレイピングされたデータを操作および分析して、チャットプラットフォームのチームメンバーに結果を送信できます。 加えて、APIはビジネス資産でもあります。他のツールと簡単に統合できるようにすることで、プラットフォームは顧客にとってより魅力的になります。外部の開発者は、各パーツの総和を上回る独自のソリューションを自由に構築できます。 APIは、今日のハイパーコネクテッドなプロセスにとって極めて重要です。当たり前のように使われている数多くのテクノロジーは、複雑なAPIのウェブによって支えられています。例えば、オンラインショッピングには、通常、複数の独立したベンダーによってホストされている支払い回収、配送リクエスト、および電子メール配信APIが含まれます。 APIの種類 個々のAPIは、所属するサービスに合わせてさまざまな機能を提供します。たとえば、ID管理ソリューションは、検索エンジンスクレイピングプロバイダーとは大きく異なるAPI機能を提供します。 とはいえ、一見無関係に見えるAPIの技術的特徴は、しばしば非常に類似しています。ほとんどの一般的なAPIで使用される標準の数は一握りに過ぎず、それらがソフトウェア業界がシステムを統合する上で有効であると判断した技術を表現しています。 では、APIにどんな種類があるのか見てみましょう。 #REST REST(Representational State Transfer)は、2000年に初めてRoy Fieldingによって理論化され、現在ではほとんどのウェブサービスで使用されています。 RESTは、システムのデータをHTTP URLにマッピングされたステートレスなリソースとして表現します。HTTPメソッド(GET、POST、PUT、DELETE)は、リソースを取得し、それらに対してアクションを実行するために使用されます。 例えば、example.com/users/100へのGETリクエストは、ID 100のユーザーに関する以下の情報を返します。 その後、同じURLにDELETEリクエストを発行すると、サービスによりオブジェクトが破棄されます。 RESTが人気なのは、実装が簡単で、HTTPの上に構築されており、現実世界のアプリケーションの多くがデータを扱う方法を効果的にモデル化しているからです。多くのシステムとのやりとりは、動詞(DELETE)と名詞(user)の組み合わせであることが多く、このアーキテクチャはRESTによって直接表現できます。 #SOAP RESTとは異なり、SOAP(Simple Object Access Protocol)はデータ共有のための正式な仕様です。REST APIはJSON、XML、CSV、またはプラットフォーム固有の代替手段を提供することがあるのに対し、すべてのSOAP交換でXMLデータ形式が使用されます。単純なSOAP APIコールで、次のようなレスポンスを生成できます。 XMLを使用し、プロトコル固有の属性を含めることで、SOAPは典型的なREST APIよりも冗長になります。ただし、SOAPの標準化には利点があり、だからこそ多くの大企業や商用システムで採用されているのです。APIで利用可能な操作は、XMLスキーマによって明示的に定義されています。これらが各リクエストとレスポンスの構造とデータタイプを記述することで、クライアントとサーバーのミスマッチが起こるリスクを減らします。 #GraphQL GraphQLは、操作可能なAPIを構築するための比較的新しい技術です。これは2012年にFacebookで開発され、2015年に公開されました。 GraphQLは、RESTやSOAP APIの抱える課題のいくつかを解決するために設計されています。これは、クライアントがAPIからデータを抽出する際に使用できる表現力豊かな言語を提供することで、複雑なクエリを簡略化します。GraphQLを使用すると、常にオブジェクト全体を扱う代わりに、必要な特定のデータフィールドだけを取り出すことができます。これにより、冗長なデータを無駄に転送するのを防ぐことができます。 […]
3 min read
James Walker Author
James Walker

Popular articles

How developers leverage Bright Data

Discover more