アプリケーションプログラムインターフェイス(API)は、ソフトウェアプログラムが相互に通信できるようにする一連の定義とプロトコルです。
RESTという用語は、RepresentationalStateTransferの略です。これは、Webサービスを作成するときに使用される一連の制約で構成されるアーキテクチャスタイルです。
RESTful APIは、RESTアーキテクチャーに従うAPIです。通常、REST APIは、データとJSON形式の応答の送受信にHTTPプロトコルを使用します。標準のHTTPメソッドを使用して、APIを介してリソースを作成、表示、更新、または削除できます。
RESTful APIをテストして操作するには、HTTPリクエストを作成できる任意のライブラリまたはツールを使用できます。
APIリクエストは、次の4つの部分で構成されています。
- エンドポイント。これは、クライアントがサーバーとの通信に使用するURLです。
- HTTPメソッド。クライアントが実行したいアクションをサーバーに通知します。最も一般的なメソッドは
GET
ですPOST
PUT
DELETE
およびPATCH
- ヘッダー。承認など、サーバーとクライアント間で追加情報を渡すために使用されます。
- 体。サーバーに送信されるデータ。
この記事では、curl
の使用方法について説明します。 RESTfulAPIと対話します。 curl
は、リモートサーバーとの間でデータを転送するためのコマンドラインユーティリティです。 macOSおよびほとんどのLinuxディストリビューションにデフォルトでインストールされます。
カールオプション#
curl
の構文 コマンドは次のとおりです:
curl [options] [URL...]
リクエストを行うときに使用するオプションは次のとおりです。
-
-X
、--request
-使用するHTTPメソッド。 -
-i
、--include
-応答ヘッダーを含めます。 -
-d
、--data
-送信するデータ。 -
-H
、--header
-送信される追加のヘッダー。
HTTP GET#
GETメソッドは、サーバーに特定のリソースを要求します。
GETは、curl
を使用してHTTPリクエストを行う場合のデフォルトのメソッドです。 。これは、JSONPlaceholderAPIに対してすべての投稿のJSON表現に対してGETリクエストを行う例です。
curl https://jsonplaceholder.typicode.com/posts
結果をフィルタリングするには、クエリパラメータを使用します:
curl https://jsonplaceholder.typicode.com/posts?userId=1
HTTP POST#
POSTメソッドは、サーバー上にリソースを作成するために使用されます。リソースが存在する場合、それは上書きされます。
次のコマンドは、-d
で指定されたデータを使用してPOSTリクエストを作成します オプション:
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts
リクエスト本文のタイプは、Content-Type
を使用して指定されます ヘッダ。デフォルトでは、このヘッダーにcurl
が指定されていない場合 Content-Type: application/x-www-form-urlencoded
を使用します 。
JSON形式のデータを送信するには、本文の種類をapplication/json
に設定します :
curl -X POST -H "Content-Type: application/json" \
-d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \
https://jsonplaceholder.typicode.com/posts
HTTP PUT#
PUTメソッドは、サーバー上のリソースを更新または置換するために使用されます。指定されたリソースのすべてのデータをリクエストデータに置き換えます。
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
HTTP PATCH#
PUTメソッドは、サーバー上のリソースを部分的に更新するために使用されます。
curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
HTTP DELETE#
DELETEメソッドは、指定されたリソースをサーバーから削除します。
curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
APIエンドポイントで認証が必要な場合は、アクセスキーを取得する必要があります。それ以外の場合、APIサーバーは「AccessForbidden」または「Unauthorized」応答メッセージで応答します。
アクセスキーを取得するプロセスは、使用しているAPIによって異なります。アクセストークンを取得したら、ヘッダーで送信できます:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
結論#
curl
の使用方法を説明しました テストAPIリクエストを作成します。 curl
の詳細については 、Curlドキュメントページにアクセスしてください。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。