初心者入門:APIとは、API使い方を分かりやすく解説
APIは、異なるソフトウェアやサービス間でデータや機能を共有するための架け橋となります。本文では、APIとは何かをみなさんに詳しく紹介した上、APIの初心者に使用例付きでAPIの使い方をわかやすく解説していきます。
API(Application Programming Interface)は現代のアプリケーション開発において非常に重要であり、ますます広まっています。APIは、異なるソフトウェアやサービス間でデータや機能を共有するための架け橋となります。本文では、APIとは何かをみなさんに詳しく紹介した上、APIの初心者に使用例付きでAPIの使い方をわかやすく解説していきます。
APIとは
API(Application Programming Interface)は、ソフトウェアアプリケーション間での情報や機能のやり取りを可能にするインターフェースです。APIは、異なるソフトウェアコンポーネントやサービスが相互に通信し、データや機能を共有するための契約やルールのセットです。例えば:ソーシャルメディアのAPIを使用することで、ユーザーはアプリ内からソーシャルメディアの投稿や友達リストにアクセスすることができます。また、決済サービスのAPIを使用することで、アプリ内でのオンライン決済が可能になります。
APIは、リクエストとレスポンスの形式でデータを交換します。リクエストは、クライアント(アプリケーションやサービス)が特定の操作やデータへのアクセスを要求するために送信するメッセージで、レスポンスは、サーバー(提供側のアプリケーションやサービス)がこの要求に対して返すデータや結果のことになります。
APIの種類
APIの種類には、さまざまなものがあります。使用するプロトコルによって、Restful API、SOAP API、GraphQL APIやWebsocket APIなどがありますが、一番汎用されているのは、Web APIになります。
現在の業界では、Web APIに関する厳格な定義がないので、HTTPというプロトコルを利用するAPIを指すこともありますし、Webサーバー、Webブラウザで利用されているAPIを指すこともあります。Web APIは、Webサイトやアプリケーションがインターネット経由で機能や情報をやり取りするために用いられる仕組みです。APIを提供するサーバに対してHTTPリクエストを送信すると、処理結果がHTTPレスポンスとして返ってきます。送受信されるデータ形式には、XML、JSON、画像ファイル形式などがよく利用されています。
初心者向け:Web APIの使い方
どのAPIを使用しようとしても、一番基本的な使い方はリクエストを送信してレスポンスを取得するというデータ交換のプロセスになると思いますが、リクエストを送信する際にも、レスポンスを取得する際にも、API利用の関連概念を多数理解する必要があります。そこで、次の部分では使用例付きでこれらの関連概念を解説した上、APIの使い方を分かりやすく解説していきます。
APIの使い方その⒈APIのリクエストの送信手順
APIのリクエストを送信する際に理解する必要があるAPIの関連概念がいくつかあると思います。次は、非常に使いやすいAPIクライアントのApidogでAPIリクエストを送信しながら、これらの関連概念を解説します。では、上記のボタンからApidogを無料で利用し始め、次の内容を参照して、APIの使い方を深く理解してみましょう。
エンドポイント
APIは、アクセスするためのエンドポイント(URLやURI)を提供します。エンドポイントは、特定のリソースや機能を識別し、クライアントがリクエストを送信する場所を指定します。エンドポイントは、APIの操作やデータにアクセスするためのアドレスとなります。
HTTPメソッド
APIリクエストを送信する時、HTTPメソッドも非常に重要です。どちらのWeb APIもHTTPプロトコルを使用していますので、違う操作を行うために、適切なHTTPメソッドを選択する必要があります。
- GET(コンテンツを取得)
- POST(コンテンツを新規追加)
- PUT(既存コンテンツを変更)
- DELETE(コンテンツを削除)
ヘッダ&クエリパラメータ&ボディ
ヘッダ(Header)とクエリパラメータ(Query Parameter)とHTTPボディ(Body)でも、APIクライアントからサーバーにデータを送信するために利用されます。
- ヘッダ(Header): リクエストのメタデータを送信するための領域
- クエリパラメータ(Query Parameter): サーバー上のデータを特定するために、URLの後ろに付加するパラメータ
- ボディ(Body): POSTなどのメソッドを利用する場合、送信するデータ本文を格納する部分
例えば、特定のユーザーの情報を取得する場合、ユーザーIDをクエリパラメータで指定します。ユーザー情報を更新する場合、更新後の情報自体をボディに入れて送信します。つまり、サーバーから取得するデータを特定したり、サーバーに特定のデータを更新したり、サーバーに何かのデータを更新したりする時、データを指定する役割を果たしています。
認証(Authentication)と認可
APIは、アクセス制御やセキュリティを確保するための認証と認可の仕組みを提供します。これにより、APIを利用するためにユーザーが認証情報を提供したり、アクセス権限を持っているかどうかを確認したりします。OAuth、トークンベースの認証などが一般的な認証の手法です。
つまり、このAPIに何かデータを送信してレスポンスを取得するには、パスワードのようなもの(API Keyが一般)で認証を通す必要があります。API Keyの取得方法は、APIによって違っていますが、基本的にはそれぞれのAPI仕様書で取得方法を確認できます。
ApidogでAPIリクエストを送信する時に、API Keyなどの認証が必要となる場合は、「Auth」タブに切り替えて、認証のタイプを選択して、API Keyなどの認証情報を記入しないと、APIリクエストを成功に送信できません。
APIの使い方その⒉APIレスポンスの確認手順
上記の手順に従って、APIリクエストを送信すると、サーバーからAPIレスポンスを確認することができるはずです。APIからレスポンスを取得する際に、具体的なレスポンス内容を理解するために、次のような関連概念を知っておく必要があります。次も、Apidogがレスポンスを取得するプロセスを例にとって、APIレスポンスの確認手順を皆さんに紹介します。
ステータスコード
APIステータスコードは、Web APIの応答メッセージに含まれる数値コードであり、APIの処理結果や応答の状態を示すために使用されます。クライアントがAPIを呼び出した際に、サーバーから返されるステータスコードは、クライアントに対してリクエストの成功、失敗、またはその他の特定の状態を伝える重要な情報となります。
以下は、一般的なAPIステータスコードを含むテーブルです。
ステータスコード | タイプ | 説明 |
---|---|---|
200 OK | 成功 | リクエストが成功し、正常なレスポンスが返されたことを示します。 |
201 Created | 成功 | リクエストが成功し、新しいリソースが作成されたことを示します。 |
204 No Content | 成功 | リクエストが成功し、レスポンスにコンテンツがないことを示します。 |
400 Bad Request | クライアントエラー | リクエストが不正であるため、サーバーがリクエストを解釈できないことを示します。 |
401 Unauthorized | 認証とセキュリティエラー | 認証が必要なリソースに対して、クライアントが認証されていないことを示します。 |
403 Forbidden | クライアントエラー | リクエストされたリソースへのアクセスが禁止されていることを示します。 |
404 Not Found | クライアントエラー | リクエストされたリソースが見つからないことを示します。 |
409 Conflict | クライアントエラー | リクエストが競合しているため、リソースの操作が失敗したことを示します。 |
422 Unprocessable Entity | 業務エラー | リクエストデータが処理できない形式であることを示し、業務規則に違反していることを伝えます。 |
429 Too Many Requests | 業務エラー、制限と割当量エラー | リクエストが制限や割当量を超えているため、一時的にリクエストを制限または拒否していることを示します。 |
451 Unavailable For Legal Reasons | 業務エラー | リクエストが法的な理由で利用できないことを示します。 |
500 Internal Server Error | サーバーエラー | サーバーで予期しないエラーが発生したことを示します。 |
502 Bad Gateway | サーバーエラー | ゲートウェイサーバーが無効なレスポンスを受信したことを示します。 |
503 Service Unavailable | サーバーエラー | サーバーが一時的に過負荷やメンテナンスのために利用できない状態であることを示します。 |
504 Gateway Timeout | サーバーエラー | ゲートウェイサーバーがタイムアウトしたことを示します。 |
507 Insufficient Storage | サーバーエラー | サーバーが保存領域の容量不足で要求を処理できないことを示します。 |
509 Bandwidth Limit Exceeded | 制限と割当量エラー | アクセス帯域幅の制限を超えたため、サーバーがアクセスを拒否していることを示します。 |
419 Authentication Timeout | 認証とセキュリティエラー | セッションの認証タイムアウトが発生したことを示します。 |
498 Invalid Token | 認証とセキュリティエラー | 提供されたトークンが無効であることを示します。 |
Apidogでいうと、APIリクエストを送信して、レスポンスを返すときに、常にHTTPステータスコードを確認できます。
レスポンス内容の確認
また、返されたAPIレスポンスの具体内容を確認する必要があります。レスポンスはJSONやXMLフォーマットで返される場合が多いので、これらのデータフォーマットを読み解く能力を持っていれば、レスポンスの本文のデータ構造、オブジェクト、配列、プロパティに含まれている情報を読み解くと、レスポンスに何かの内容が返されているのかをも解明することができますね。
まとめ
APIは異なるアプリケーション間でデータや機能を共有するためのインターフェースで、Web APIが最も一般的に利用されているとのことです。 APIを利用する際の基本的な流れは、クライアント側からリクエストを送信し、サーバー側からレスポンスを取得する、というものです。
リクエストを送信する際には、エンドポイント、HTTPメソッド、ヘッダー、クエリパラメータ、ボディ、認証など、関連する多くの概念を理解しておく必要があります。その一方、レスポンスを取得した後は、ステータスコード、レスポンスのデータフォーマット、構造などを適切に解析していくことが重要です。