Можно ли ограничить глубину генерируемых примеров или, по крайней мере, отключить примеры для конкретной конечной точки?
Действие контроллера OData может вернуть IQueryable
, поэтому имеет смысл использовать реальное ядро EF объект в [ProducesResponseType]
, чтобы избежать дублирования кода:
public class FooController
{
[ProducesResponseType((int) HttpStatusCode.OK, Type = typeof(List<FooEntity>))]
public IQueryable GetFooQueryable()
{
}
}
Проблема: сгенерированный пример описывает почти всю базу данных из-за свойств навигации в этой сущности, что делает весь JSON громоздким (например, 10 МБ) и почти непригоден для использования. Более того, пример может быть просто некорректным из-за того, что опция OData $expand
обычно настроена с верхним пределом для вложенности, что отключает неконтролируемое чтение вложенных сущностей. По умолчанию эта глубина равна 2.
Кстати, я спросил то же самое на Github без обратной связи.