REST API - соответствующий метод и маршрут, чтобы дочерний элемент мог изменить свой родительский ресурс. - PullRequest
0 голосов
/ 09 января 2020

Допустим, у меня есть 2 модели Location и Item, которые соответствуют 2 таблицам в базе данных, представленной в c# ниже. Подходит ли что-то вроде запроса PATCH на /items/{itemId}, чтобы изменить идентификатор местоположения элемента, чтобы ссылаться на другой ресурс местоположения? Это первый случай, когда я хочу изменить родительский ресурс ресурса, поэтому я не уверен в подходящем методе и маршруте. Я работаю с DTO (объектами передачи данных), поэтому в идеале то, что я хочу сделать, приемлемо, чтобы у меня был только один класс патчей DTO для обновлений модели 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; }
}

1 Ответ

1 голос
/ 09 января 2020

Учитывая, что ваш URL-адрес /items/{itemId}, а не что-то вроде /location/{locationId}/items/{itemId}, я не думаю, что есть что-то особенное в изменении locationId по сравнению с любым другим свойством с точки зрения HTTP / Rest.

И PATCH - это хороший способ частичного изменения ресурса.

...