RESTAPIの概要

REST APIの作成者の観点から、および消費者の観点から、RESTAPIとは何ですか。

APIはApplicationProgramming Interfaceの略で、さまざまなものを識別する包括的な用語です。

ブラウザが利用可能な関数の形でいくつかのAPIを提供する方法を見てきました。

Node.jsがデフォルトモジュールを備えたプログラミングAPIをどのように提供するかを見ました。

APIは、別のことも意味します。複数のクライアントからアクセスできるサーバーを介して提供される、特定の機能を公開するサービスを作成することです。

大まかに言えば、現在、APIにはRESTAPIとGraphQLAPIの2つのカテゴリがあります。

たとえばSOAPのような他の種類のAPIパラダイムが存在しますが、JavaScriptの世界ではあまり人気がありません。

この投稿では、RESTAPIについて説明します。

エンドポイント

REST APIでは、いくつかのエンドポイントクライアントがアクセスできること。

人々のリストを公開したいとします。に応答するエンドポイントを作成できます/people ルート

私たちのサービスがドメインでリッスンする場合test.com、私たちは持っているだろうtest.com/peopleURL。

このエンドポイントは任意の形式でデータを提供しますが、通常はJSON、2つのサービス間でデータを通信するために使用される便利なテキストベースの形式。

この/peopleエンドポイントは、人の名前のリストを提供できます。id一人一人のために。これはかもしれませんidたとえば、データベースに保存するために使用します。

私たちのシステムは、別のエンドポイントを公開することもできます。/person。これは受け入れますidこれは、次のように人を一意に識別します。/person/1

私たちのAPIは、年齢、メールアドレス、住所など、その人物に関する詳細情報を提供します。

注意すべき重要な点は、最初のエンドポイントにはパラメーターがなかったということですが、今回はパラメーターがあります。

パラメータはさまざまな方法で送信でき、すべてのエンドポイントがサーバーからの情報の送信に使用されるわけではありません。すぐにわかるように、他のいくつかのエンドポイントがアクションの実行に使用されます。

メソッド

私は言った/peopleエンドポイントは、システム内のユーザーのリストを返します。

これは単純化であり、さらに深く掘り下げる時が来ました。

REST APIは、HTTPプロトコルの原則を使用して、HTTPメソッド中古:GETPOSTPUTDELETE

GET最も一般的なものです。クライアントがGETメソッドを使用してAPIエンドポイントを呼び出すと、データを読み取りたいことを通知します。

GET /people人々のリストを返します。

GET /person/1人の詳細を返します。

HTTPメソッドがPOST、意味が全然違います。エンドポイントは同じですが、必要なアクションは別のものになります。

私たちはAPIビルダーとして、意味が何であるかを定義します。

たとえば、POST /person呼び出されたときにデータベースに新しい人を作成するエンドポイント。

クライアントから、選択可能な事前定義された形式でデータを受信します。 Expressを使用して作成された例がすぐに表示されます。

GETそしてPOST使用される主な2つの動詞です。

時々使用しますPUTそしてDELETEPUT人の住所を変更するなど、リソースを更新するために使用されることがあります。DELETEリソースを削除するために使用されます。

別の時に、POST読んでいないものすべてに使用されます。GET使用されている。

この選択には自由があります。

リソースとは、複数形の人のように、エンティティを意味します。/people、またはの場合は一人/person

APIエンドポイントの命名

私がどのように使用したか見てください/peopleそして/person上記。

それらは名詞

エンドポイントに名詞を使用し、アクションを通知するためにHTTPメソッドを使用することは、ベストプラクティスと見なされます。

人を更新するには、POSTにリクエスト/person終点。

人にメッセージを送信するためのAPIを作成する場合は、POSTを使用してリクエスト/messageエンドポイント。送信する人とメッセージを識別するためにデータを渡します。

RESTAPIはステートレスです

RESTAPIはステートレスです。

これは、異なるリクエスト間にメモリがないことを意味します。

見つけることができるほとんどのAPIは、APIを呼び出しているユーザーを追跡する方法として機能し、使用量と強制制限を監視する方法を提供するAPIキーメカニズムを実装しています。

ログイン/パスワードメカニズムを使用してAPIを保護することもできます。この場合、API認証プロセスでは、トークンを提供するハンドシェイクプロセスを考慮する必要があります。このプロセスは、ユーザーと正しい承認を識別するために、今後のすべてのリクエストで送信する必要があります。

反応

API呼び出しは、HTTP応答ステータスコードとHTTP応答本文の2つの形式でユーザーに応答を返します。

すべてのHTTPリクエストにはステータスコードがあります。

HTTP応答ステータスコードに関していくつかの規則があります。ブラウザを使用してWebページを開くと、ページは200 OKステータスコード。ページが見つからない場合は、404 NOT FOUNDステータスコード。

同じことがAPIでも機能します。

一般的なものは次のとおりです。

  • 200 OK:これは、HTTPリクエストが成功した場合の標準的な応答です。
  • 201 Created:通常、POSTリクエストへの応答。リクエストが完了し、新しいリソースが作成されました。
  • 400 Bad Requestクライアントで生成された要求エラーのため、サーバーは要求を処理できません。エラーには、不正な形式のリクエスト、サイズが大きすぎて処理できないなどが含まれます。
  • 401 Unauthorized認証が必要で、クライアントが許可されていない場合に送信されます
  • 403 Forbiddenさまざまな理由により、リソースを利用できません。理由が認証である場合は、401Unauthorizedステータスコードを優先します。
  • 404 Not Found要求されたリソースが見つかりませんでした。
  • 405 Method Not AllowedリソースはそのHTTPメソッドでは利用できませんが、別のメソッドで利用できる可能性があります。
  • 500 Internal Server Error予期しない状態が発生し、特定のメッセージが適切でなくなった場合に表示される、一般的なサーバーエラーメッセージ。

あなたはで完全なリストを見つけることができますHTTPステータスコードリスト。注意すべき点は、APIを作成するときは、クライアントに通知するために、常に正しいステータスコードを返す必要があるということです。

応答の本文は通常、要求されたデータを含むJSON応答、またはエラーメッセージです。

メッセージの作成方法の詳細は、APIビルダー、またはAPIの作成者によって決定されます。


その他のネットワークチュートリアル: