表現は、リンクを使用してリソースに要求を行うときにネットワーク経由で送信されるバイトの完全なセットに付けられた名前です。
リソースは、アプリケーションにとって重要な概念であり、クライアント アプリケーションに公開する必要があります。リソースは URL によって識別されます。
技術的には、URL スキームは、コロンの前に表示される URL の最初の数バイトです。例: http、urn、ftp、file など。しかし、あなたが見ているコンテキストでは、URL のパス セグメントとクエリ文字列パラメーターを整理し、URL のそれらの部分に重要性を割り当てるための規則を意味していると思います。
REST の観点から見ると、サーバーは URL 規則を作成できますが、クライアントはそれらの規則について何も知らない必要があります。
ハイパーメディアは、ハイパーリンクをサポートするメディア タイプの分類です。ハイパーテキストは、ハイパーメディアとほぼ同義の古い用語です。理論上、ハイパーメディアはテキストベースのフォーマットである必要はありません。これまでのところ、ハイパーテキストではないハイパーメディア形式については知りません。
ハイパーリンク、リンク、およびWeb リンクは同義です。
残念ながら、これらの用語は定義上抽象的です。これらの概念を実装するには、さまざまな方法があります。
ActiveRecordは、リソースの表現を構築するために使用されるデータを格納するためによく使用される実装概念です。ただし、ActiveRecord インスタンスからのみリソースを作成できるように制限すると、効果的な REST API を実装するのに苦労する可能性があります。
リソースの表現は統一されている必要があります- これは私には意味がありません。「Uniform Interface」と呼ばれる REST 制約があります。ただし、この制約は、一貫したインターフェイスを使用して階層化されたアプリケーションを構築できるようにすることを意味します。つまり、クライアントがサーバーと通信したい場合、プロキシ、ロード バランサー、キャッシュを間に挟むことができます。インターフェイスが一貫しているため、クライアントとサーバーは違いを認識できません。
ハイパーメディアを使用する- ハイパーメディアは、クライアントとサーバーを分離して、どちらかが独立して進化できるようにするのに役立ちます。これが重要でない場合 (つまり、Web サイトと同時にクライアントの JavaScript をいつでも展開できる場合)、そこから多くの価値を得ることはできません。
API への単一のエントリを使用する- 前のポイントを参照してください。独立した進化が必要な場合は、さらに探索してください。
あなたの表現に「自己リンク」を含めてくださいそして再び...
JSON REST はアプリケーションの境界のアーキテクチャ スタイルであるため、REST は単に ActiveRecord モデルを吐き出すことを意味するわけではありません。ActiveRecords をリソースとして公開すると、クライアントがサーバーの実装の詳細に結び付けられます。また、HTTP はいくつかのメソッド (GET、PUT、POST、DELETE、OPTIONS、HEAD) に限定されています。この限られた語彙を補うために、データベース内のレコードとは関係のないリソースを作成する必要があります。