REST API - 使 child 更改其 parent 资源的适当方法和路径
REST API - appropriate method and route to have child change what its parent resource is
假设我有 2 个模型,Location
和 Item
,它们对应于数据库中的 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
是对资源进行部分更改的好方法。
假设我有 2 个模型,Location
和 Item
,它们对应于数据库中的 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
是对资源进行部分更改的好方法。