REST API - 使 child 更改其 parent 资源的适当方法和路径

REST API - appropriate method and route to have child change what its parent resource is

假设我有 2 个模型,LocationItem,它们对应于数据库中的 2 个表,在下面的 c# 中表示。 PATCH/items/{itemId} 的请求是否适合更改项目的位置 ID 以引用不同的位置资源?这是我第一次遇到想要更改资源的 parent 的情况,所以我不确定合适的方法和路线。我正在使用 DTO(数据传输 objects),所以理想情况下我想做的事情是可以接受的,所以我可以只有一个 DTO 补丁 class 来更新 Item 模型。

public class Location {
    public long Id { get; set; }
    public ushort RoomNumber { get; set; }
    public string Description { get; set; }

    public List<Item> Items { get; set; }
}
public class Item {
    public long Id { get; set; }
    public string AssetNumber { get; set; }
    public string SerialNumber { get; set; }

    public long LocationId { get; set; }
    public Location Location { get; set; }
}

鉴于您的 url 是 /items/{itemId} 而不是 /location/{locationId}/items/{itemId},我认为更改 locationId 与任何其他 属性 从 HTTP/Rest 的角度来看。

并且 PATCH 是对资源进行部分更改的好方法。