Une ressource est la chose avec laquelle vous travaillez. Par exemple, si vous avez une API pour changer une certaine lampe, alors la ressource est la lampe elle-même. Une ressource peut être physique (par exemple lampe, personne) ou non physique (par exemple article, rôle, une ligne dans la base de données), une ressource peut être principale (par exemple solde) ou dérivée (par exemple transaction). Une ressource peut faire référence à une entité spécifique (par exemple la cinquième lampe installée dans cette douille de lampe), ou elle peut faire référence à un rôle qui correspond à une entité différente à un moment différent (par exemple la lampe actuellement installée, la lampe installée le 5 août 2008) ou il peut correspondre à plusieurs entités (par exemple, toutes les lampes de la maison).
La représentation d'une ressource est la façon dont votre service communique l'état de la ressource, par exemple XML, JSON qui représente l'état de la lampe.
Dans l'API REST, une ressource est identifiée par un identifiant uniforme (par exemple URI). Une seule ressource peut avoir plusieurs représentations, dans l'API HTTP REST, vous devez normalement indiquer la représentation que vous souhaitez utiliser dans les en-têtes HTTP Content-Type et Accept.
L'une des principales réalisations de l'architecture client-serveur est que vous ne pouvez pas apporter la ressource au client et que vous ne devriez pas essayer de la faire comme vous le faites. Au lieu de cela, dans l'API REST, vous manipulez une ressource à distance en transférant des représentations de la ressource. Pensez à cela, vous ne FedEx pas la lampe afin que le client puisse manipuler la lampe directement, mais le service crée plutôt une représentation XML / JSON / protobuf / CSV de la lampe et le client envoie une représentation des manipulations prévues. Le service manipule ensuite l'état réel de la lampe au nom du client, ou rejette la demande, par exemple si le client n'est pas autorisé à effectuer les opérations sur la lampe. Cela peut sembler évident / couper les cheveux, mais la chose importante à noter est que, puisque la représentation n'est pas la ressource elle-même,