2017-02-02 15 views
0

Интересно, какой лучший способ отправить сложный объект, когда он предназначен только для поиска данных. У меня есть сетка, где пейджинг, фильтрация, сортировка и т. Д. Будут выполняться с разной стороны. Поэтому я должен отправить все эти данные с каждым запросом.Отправка сложного объекта GET vs POST

public class DataConfiguratorDto 
{ 
    [Required] 
    public Paging Paging { get; set; } 

    public Sorting Sorting { get; set; } 

    public IList<Filtering> FlitersList { get; set; } 
} 

public enum FilterCondition 
{ 
    Equals, 
    Contains, 
    MoreThan, 
    LessThan, 
} 

public class Paging 
{ 
    public int RowNumberStart { get; set; } 

    [GreaterThan(nameof(RowNumberStart))] 
    public int RowNumberEnd { get; set; } 
} 

public class Filtering 
{ 
    [Required] 
    public string ColumnName { get; set; } 

    [Required] 
    public object FilterValue { get; set; } 

    [Required] 
    public FilterCondition FilterCondition { get; set; } 

    [Required] 
    public FilterType FilterType { get; set; } 
} 

public class Sorting 
{ 
    [Required] 
    public SortOption SortOption; 

    [Required] 
    public string ColumnName { get; set; } 
} 

public enum SortOption 
{ 
    Asc, 
    Desc 
} 

public enum FilterType 
{ 
    And, 
    Or 
} 

Теперь я мог бы использовать POST, но разве это не ломает цель?

Что было бы лучшим вариантом для этого?

ответ

0

Вы должны использовать сообщение, отправляющее сложный объект в тело (например, JSON).

за w3.org

«Метод GET позволяет получать любую информацию (в форме объекта), идентифицируется Request-URI.»

«Метод POST используется для запроса, чтобы исходный сервер принял объект, заключенный в запросе, в качестве нового подчиненного ресурса, идентифицированного Request-URI в строке запроса».

См. here для получения дополнительной информации.