Como devo lidar com links e referências HATEOAS no JSON? [fechadas]

Estou no processo de projetar uma API REST e ser o mais RESTful possível. Eu quero incorporarHATEOAS nas respostas json.

Adicionar URLs a recursos relacionados é bastante fácil, mas houve alguma discussão sobre a estrutura a ser usada para esses links.

Muitos artigos que encontrei usam uma estrutura emprestada deÁTOMO feeds:

"links": [ 
    {"rel": "self", "href":"http://example.org/entity/1"},
    {"rel": "friends", "href":"http://example.org/entity/1/friends"}, ... 
]

Isso levantou algumas questões:

Por que usar uma matriz como um contêiner? De acordo com um desenvolvedor de javascript que conheço, o acesso aos links seria mais fácil com os links como propriedades de um objeto. Por exemplo:

"self":    { "href":"http://example.org/entity/1" }, /* (facebook uses this) */  
"friends": { "href":"http://example.org/entity/1/friends", "type": "..."}

Existe uma estrutura json comum (ao lado de adaptar o átomo novamente)descrever referências em propriedades de recursos? (por exemplo, o remetente de uma mensagem).

A referência provavelmente deve ser resolvida como url novamente, mas seria ruim incluir o id simples também? meio que:

"sender": { 
    "id": 12345,
    "href": "resource-uri"
}

Minha maneira de pensar é que, enquanto o HATEOAS faz com que um cliente não precise de muito conhecimento para usar uma API, estou relutante em remover a possibilidade de usar esse conhecimento (como acessar a imagem do perfil construindo o link client-side sem procurar primeiro o usuário).

questionAnswers(3)

yourAnswerToTheQuestion