Qual è il punto di collegamento rel="self" in un'API REST?

10

Spesso vedo quanto segue nei documenti HTML

<link rel="self" href="http://example.com/something">

o simile in JSON

 link: {
     rel="self",
     href="http://example.com/something"
 }

o in XML

 <atom:link rel="self" href="http://example.com/something" />

Quindi ho avuto alcune domande:

  1. Perché includere questo link? Che vantaggio offre? (Per favore dimmi che c'è un motivo per questo e non è solo un talismano di "buona pratica")
  2. Come devo sfruttare questo collegamento nei miei clienti? Quali sono gli use case per questo link?
  3. Quando non dovrei io uso questo link? Quando è inutile includerlo?
posta Laurent Bourgault-Roy 24.02.2014 - 18:08
fonte

1 risposta

7

È un riferimento personale, quindi il client saprà che l'IRI ( http://example.com/something ) è un identificatore della risorsa di cui tratta la rappresentazione.

Può essere importante quando la tua risorsa può avere più identificatori, ad esempio http://example.com/users/1 e http://example.com/users/1?fields="name" possono identificare la stessa risorsa, ma un GET su di essi può portare a rappresentazioni diverse.

Per tipi di media come HAL lo usi per identificare anche le risorse incorporate. Ad esempio:

{
    "nick": "John",
    "_embedded": {
        "cars": {
            "items": [
                //...
            ],
            "_links": {
                "self": {
                    "href": "http://example.com/users/john/cars"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "http://example.com/users/john"
        }
    }
}
    
risposta data 18.09.2014 - 14:17
fonte

Leggi altre domande sui tag