No momento, estamos projetando uma API REST para acessar dados clássicos de clientes. Um dos elementos na API são os ativos de um usuário. Os ativos são adicionados sob um determinado serviço. A API de back-end adicionará apenas um ativo a um usuário em um determinado serviço. Portanto, não existe uma relação Usuário - Ativo, mas um relacionamento Usuário - [Serviço] - Ativo.
Nossos URIs ficarão assim:
/users/{id}/assets/{id}/services/{id}
Os usos da API conhecerão o ID do ativo e o ID do serviço para criar uma nova entrada. O que estamos lutando é com a criação dessa relação.
Uma maneira direta seria postar toda a relação com /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
mas, na verdade, não estamos criando um ativo como o URI pode indicar, mas uma relação serviço-ativo.
Como alternativa, estamos considerando o POST para o URI abordar a relação, assim:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Mas, nesse caso, o caminho do recurso /users/{id}/assets/{id}
não existirá antes do POST e será criado como efeito colateral.
POST'ing para um caminho de recurso que ainda não existe ainda é permitido?
Obrigado por seus pensamentos,
Gerard.