I'm designing a RESTful API and I'm trying to figure out how to show and update foreign keys for resources.
Let's I have an object User and it has an id, name and a foreign key (many-to-one relation) to entity: Computer.
What I see in most of the examples online:
GET /users/1
{ id: 1, name: "Bob", computer: "<url>/computers/5" } Which I can understand, it's a link to another resource. But what do you do when you want to pick another computer for bob?
PUT /users/1
{ name: "Bob", computer: "<url>/computers/4" } This feels really weird. I'm also thinking about the following case: Say the person that has to implement the API can choose a computer for Bob using a dropdown and the current one should be selected, I'd need the id to do that. Do I have to parse the url myself to chop off the id?
Is there a reason why I should not just do:
GET /users/1
{ id: 1, name: "Bob", computerId: 5 } PUT /users/1
{ name: "Bob", computerId: 4 }