In REST, do we always use link relation values to convey
semantics/role of a linked resource?
Utilizzare le relazioni di collegamento è solo un modo per aggiungere semantica ai collegamenti. L'altra soluzione standard per utilizzare i vocabri RDF, ad esempio hydra o schema.org .
I assume link relation value is always specified using rel attribute?
Dipende dal tipo di media, per esempio da HAL + JSON fai qualcosa del genere:
{
"nick": "John",
"_links": {
"self": {
"href": "http://example.com/users/john"
}
}
}
Should rel attribute only be specified within a hypermedia control?
I assume for an element to be considered a hypermedia control it must
provide a linking functionality and must also contain a rel attribute?
Questo dipende ancora dal tipo di media. Ad esempio in HTML solo gli elementi LINK possono avere relazioni, quindi puoi aggiungere semantica solo alle richieste GET. Anche altri elementi che usano i collegamenti ipertestuali, ad esempio FORM, IMG, ecc., Non possono avere relazioni per quanto ne so. Da loro è possibile utilizzare RDFa per aggiungere una relazione di collegamento. Btw. L'HTML non è il miglior tipo di ipermedia per REST, dal momento che riguarda la comunicazione machine to machine e HTML è per la creazione di GUI per gli umani ...