GNU/Linux >> Linux の 問題 >  >> Linux

Curlを使用してRESTAPIリクエストを作成する

アプリケーションプログラムインターフェイス(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ドキュメントページにアクセスしてください。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Apacheでmod_clusterを使用する

  2. Curlを使用してWebリクエストを自動化しますか?

  3. Curlを使用したWebページのヘルスチェック?

  1. .htaccessを使用してhttpをhttpsにリダイレクトする方法は?

  2. bash で以前のコマンドの出力を使用する

  3. WGET を使用して cronjob PHP を実行する

  1. Gnu Make Pattern Ruleでワイルドカードを使用しますか?

  2. cURL で HTTP リクエストを実行する (PROXY を使用)

  3. curl を使用してメールを送信する