2013-01-06 10 views

risposta

16

Il motivo principale è che i client (e anche alcuni server) non memorizzano la posizione di una rappresentazione con la rappresentazione. Ad esempio, se si wget http://.../foo.json, la rappresentazione verrà salvata sul disco, ma l'URI in cui è stato recuperato non lo sarà. Se non v'è alcun collegamento "sé" incastonato nella rappresentazione, questo provoca due problemi:

  1. collegamenti relativi nel documento possono non avere una base contro la quale per risolvere, e sarà quindi "spezzato"; e

  2. Il cliente non avrà alcun concetto incorporato di dove ad es. PUT il documento torna su un server se lo modificano. Alcuni clienti mantengono questa informazione in modo indipendente, ma la maggior parte non lo fa.

E 'importante capire che le rappresentazioni possono avere una vita ben al di fuori della conversazione HTTP, e può anche essere trasferiti tramite altri protocolli (e-mail, FTP, in un libro, ecc). Un progettista esperto di tipi di media quindi includerà tipicamente un link "self".

1

Quando viene restituita una risorsa, potrebbe non essere la rappresentazione completa. Il collegamento self dovrebbe fornire un URL per accedere a quella rappresentazione completa

ad es.

GET /objects

[ 
    { 
    "name": "tech", 
    "links": [ 
     "rel": "self", 
     "href": "/objects/1" 
    ] 
    }, 
    { 
    "name": "book", 
    "links": [ 
     "rel": "self", 
     "href": "/objects/2" 
    ] 
    } 
] 

GET /objects/1

{ 
    "name": "tech", 
    "ratio": 1, 
    "precision": 2, 
    "links": [ 
    { 
     "rel": "self", 
     "href": "/objects/1" 
    } 
    ] 
}  
Problemi correlati