回答:
リソースは、エンドポイントの RESTfulサブセットです。
エンドポイントそれ自体は、サービスにアクセスできる場所です。
https://www.google.com # Serves HTML
8.8.8.8 # Serves DNS
/services/service.asmx # Serves an ASP.NET Web Service
リソースは、人間が理解することが容易であることから、名前空間形式で表され、一つ以上の名詞が提供されることに言及します。
/api/users/johnny # Look up johnny from a users collection.
/v2/books/1234 # Get book with ID 1234 in API v2 schema.
上記のすべてをサービスエンドポイントと見なすことができますが、RESTfulに言えば、一番下のグループのみがリソースと見なされます。トップグループはそれが提供するコンテンツに関して表現力がありません。
RESTリクエストは、名詞(リソース)と動詞(HTTPメソッド)で構成される文のようなものです。
GET
(メソッド)johnny
(リソース)という名前のユーザー。DELETE
(メソッド)id 1234
(リソース)の本。エンドポイントは通常サービスを指しますが、リソースは多くのことを意味する可能性があります。以下は、リソースが使用されるコンテキストに依存するリソースの例です。
あなたを助けるために使用できる何か:
ライブラリは貴重なリソースであり、彼はそれを頻繁に利用しました。
資源は、水や木材などの生命維持に役立つ貴重な天然物質です。
[pl]地球には限られた資源しかなく、リサイクルしなければ、使い果たしてしまいます。
リソースは、お金や所有物など、必要なときに使用できる貴重なものでもあります。
[pl]政府には必要な数の教師を雇うためのリソースがありません。
定義上、リソースという用語には多くのニュアンスがあります。それはすべて、それが使用されるコンテキストに依存します。
用語のリソースおよびエンドポイントは、多くの場合、同義的に使用されています。しかし、実際にはそれらは同じことを意味するものではありません。
エンドポイントという用語は、要求を行うために使用されるURLに焦点を合わせています。リソース
という用語は、要求によって返されるデータセットに重点を置いています。
現在では、複数の異なるエンドポイントから同じリソースにアクセスできることがよくあります。
また、同じエンドポイントは異なるリソースを返す可能性がありますクエリ文字列によってあります。
いくつかの例を見てみましょう:
以下のさまざまなエンドポイントの例をご覧ください。
/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
それらは明らかに、与えられたAPIの非常に同じリソースにすべてアクセスできます。
また、既存のAPIを完全に変更することもできます。これにより、まったく新しい異なるURLを使用して、同じ古いリソースにアクセスする新しいエンドポイントにつながる可能性があります。
/api/employees/3
/new_api/staff/3
エンドポイントがコレクションを返す場合、クエリ文字列を使用して検索/フィルタリング/ソートを実装できます。その結果、次のURLはすべて同じエンドポイント(/api/companies
)を使用しますが、異なるリソース(または定義上はそれ自体がリソースであるリソースコレクション)を返す可能性があります。
/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
おそらく私のものは良い答えではありませんが、ここに行きます。
HTTPを介して真にRESTfulなWebサービスを使用して作業するため、明確な定義がないため、エンドポイントという用語の使用を避け、代わりにリソースとリソースの場所であるRESTの言語を使用するようにしました。
私の考えでは、エンドポイントはTCP用語です。URLの一部がリッスンしているサーバーを識別するため、HTTPと互換性があります。
したがって、リソースは新しい用語ではないと思います。エンドポイントは常に悪用されていたと思います。APIのスタイルとしてRESTに目を向けているので、それを実感しています。
編集する
これについてブログに書いた。
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
によると https://apiblueprint.org/documentation/examples/13-named-endpoints.htmlすることで、リソースのに対し、例えば/顧客/ 30654 /受注-指定されたエンティティのストレージの「一般的な」場所のエンドポイントが具体的な行動であります(HTTPメソッド)指定されたリソース。したがって、1つのリソースが複数のエンドポイントを持つことができます。
ユーザー、ミッション、およびそれらの報酬ポイントの情報を持つサーバーを考えてみましょう。
出典: APIエンドポイントとリソース
1.リソースの説明 「リソース」とは、APIによって返される情報を指します。
2.エンドポイントとメソッド エンドポイントはリソースへのアクセス方法を示し、メソッドはリソースとの許可された対話(GET、POST、DELETEなど)を示します。
追加情報: 3.パラメーター パラメーターは、エンドポイントと共に渡すことができるオプション(応答フォーマットや返される量の指定など)で、応答に影響を与えます。
4.リクエストの例 リクエストの例には、エンドポイントを使用したサンプルリクエストが含まれており、構成されたいくつかのパラメーターを示しています。
5.応答の例とスキーマ 応答の例は、要求の例からの応答の例を示しています。応答スキーマは、応答のすべての可能な要素を定義します。
ソース- 参照リンク