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/people
URL。
このエンドポイントは任意の形式でデータを提供しますが、通常はJSON、2つのサービス間でデータを通信するために使用される便利なテキストベースの形式。
この/people
エンドポイントは、人の名前のリストを提供できます。id
一人一人のために。これはかもしれませんid
たとえば、データベースに保存するために使用します。
私たちのシステムは、別のエンドポイントを公開することもできます。/person
。これは受け入れますid
これは、次のように人を一意に識別します。/person/1
私たちのAPIは、年齢、メールアドレス、住所など、その人物に関する詳細情報を提供します。
注意すべき重要な点は、最初のエンドポイントにはパラメーターがなかったということですが、今回はパラメーターがあります。
パラメータはさまざまな方法で送信でき、すべてのエンドポイントがサーバーからの情報の送信に使用されるわけではありません。すぐにわかるように、他のいくつかのエンドポイントがアクションの実行に使用されます。
メソッド
私は言った/people
エンドポイントは、システム内のユーザーのリストを返します。
これは単純化であり、さらに深く掘り下げる時が来ました。
REST APIは、HTTPプロトコルの原則を使用して、HTTPメソッド中古:GET
、POST
、PUT
、DELETE
。
GET
最も一般的なものです。クライアントがGETメソッドを使用してAPIエンドポイントを呼び出すと、データを読み取りたいことを通知します。
GET /people
人々のリストを返します。
GET /person/1
人の詳細を返します。
HTTPメソッドがPOST
、意味が全然違います。エンドポイントは同じですが、必要なアクションは別のものになります。
私たちはAPIビルダーとして、意味が何であるかを定義します。
たとえば、POST /person
呼び出されたときにデータベースに新しい人を作成するエンドポイント。
クライアントから、選択可能な事前定義された形式でデータを受信します。 Expressを使用して作成された例がすぐに表示されます。
GET
そしてPOST
使用される主な2つの動詞です。
時々使用しますPUT
そしてDELETE
:PUT
人の住所を変更するなど、リソースを更新するために使用されることがあります。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の作成者によって決定されます。
その他のネットワークチュートリアル:
- WebSocketの概要
- HTTPリクエストのしくみ
- HTTPリクエストヘッダーリスト
- HTTP応答ヘッダーリスト
- HTTPとHTTPS
- RFCとは何ですか?
- HTTPプロトコル
- HTTPSプロトコル
- HTTPリクエストのカールガイド
- HTTPでのキャッシュ
- HTTPステータスコードリスト
- CDNとは何ですか?
- HTTP / 2プロトコル
- ポートとは
- DNS、ドメインネームシステム
- TCPプロトコル
- UDPプロトコル
- RESTAPIの概要
- macOSにローカルSSL証明書をインストールする方法
- ローカルSSL証明書を生成する方法
- HTTPS用にNginxを構成する方法
- サブフォルダーから複数のNode.jsアプリを提供するためのシンプルなnginxリバースプロキシ
- リバースプロキシとは何ですか?