Учитывая, что у меня есть модель, обозначающая город, в котором хранится коллекция улиц.Соотношение сторон DTO для вложенных коллекций
public class City {
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<Street> Streets { get; }
}
public class Street {
public int Id { get; }
public string Name { get; }
public IEnumerable<Building> Buildings { get; }
}
Если клиент заинтересован в всех городов (api/cities/all
) и я бы вернуть его полную коллекцию, это приведет к массивному реакции, в зависимости от размера набора данных. Так что я думал сначала о возвращении только улицы ids внутри улиц коллекции. Это, однако, кажется неудобным, поскольку в то время как ids могут быть полезны для дальнейшего поиска улиц, они не имеют значимого значения для клиента (нет смысла заполнять список ids на вид, чтобы показать, что улицы находятся в городе, не так ли?).
Моя следующая идея состояла в том, чтобы угробить улицы коллекция полностью и вместо того, чтобы предложить API конечной точки для извлечения улицах из города:
api/cities/3737/streets
Таким образом, я могу принести полный список улицы, однако возвращенные данные тогда не содержат никакой информации, к которой относятся улицы. Если я клиент сейчас захочет показать и улицы и город, ему нужно будет сделать 2 вызова API, чтобы получить нужную ему информацию.
Каков общий способ возврата таких данных?
По правде говоря, нет абсолютно правильного способа сделать это. Вам нужно решить, что хорошо для производительности вашего приложения. То, что хорошо для одного приложения, плохо для другого. –