我正在 React 中开发一个仪表板,它调用后端 API 从数据库中获取所有食谱。所以搜索条件会很大。需要将许多过滤器属性传递到后端才能获得正确的食谱。
作为下面的示例,我为搜索参数定义了一个类
public class SearchParams
{
public string TemplateName { get; set; } = "";
public DateTime DateFrom { get; set; }
public DateTime DateTo { get; set; }
public String CreatedBy { get; set; } = "";
public Guid Id { get; set; }
}
因此需要 GET 方法来处理提供的任何参数,从而相应地从数据库中获取相应的食谱。
但是由于 GET 请求不支持接受参数作为 OBJECT (抱歉,如果我错了),我考虑尝试使用 POST。但是使用 POST 进行搜索功能感觉有点混乱。
那么使用 GET 方法我是否需要像这样定义所有参数
[HttpGet]
public IEnumerable<Recipes> Get(string TemplateName,DateTime DateFrom....)
{
return new string[] { "value1", "value2" };
}
或者有什么最好的方法吗?
请注意,我的真实搜索条件包括除上面类定义中的属性之外的许多属性。
没有什么可以阻止您使用 SearchParams 作为输入参数
[HttpGet]
public IEnumerable<Recipes> Search(SearchParams par)
唯一的问题是 Get 不包含主体,因此所有数据都应包含在查询字符串中
.../search?TemplateName=TemplateName&CreatedBy=....
你可以尝试[FromQuery]吗
[HttpGet] 公共 IEnumerable 搜索([FromQuery] SearchParams par)