将WebAPI GET方法中的参数传递给过滤器列表

时间:2019-05-04 22:18:53

标签: asp.net-core-webapi

通过遵循在线教程,我使用WebAPI创建了基本应用程序。它可以正常工作。 GET方法从数据库表中检索列表,并将其填充在前端网站中。我只是试图通过传递一个或多个参数来过滤该列表。

这是EmployeeController.cs文件中的代码。大多数代码与模板创建的代码相同。 (很抱歉,但是我想提供足够的信息)

我可以通过修改“ return db.Employees;”来实现我的目标吗?行,还是我需要更多参与?

谢谢您的帮助!

for value in sp500['vix10dFuture']:

value =  np.where(sp500['vix'].shift(-30) >= sp500['vix'] or  16, 1, 0)

sp500['vix30dFuture'] = value

2 个答案:

答案 0 :(得分:0)

In在我的YouTube频道视频here中回答了您的问题。
假设您要使用员工代码过滤员工,则api方法将像这样。

public IQueryable<Employee> GetEmployees(string empCode)
{
    return db.Employees.Where(x => x.EMPCode==empCode);
}

可以通过查询字符串传递相应的参数。像这样:http://localhost:46568/api/employee?empCode=BJC


具有多个过滤器选项的api方法

public IQueryable<Employee> GetEmployees(string empCode,string mobile)
{
    return db.Employees.Where(x => x.EMPCode == empCode || x.Mobile == mobile);
}

例如请求:http://localhost:46568/api/employee?empCode=BJC&mobile=754010

答案 1 :(得分:0)

OData查询选项:- 客户端在请求URI中发送一些参数并将这些参数应用到服务器端以在从API服务接口获取数据的同时执行所需的操作,这可能对您有帮助。

[MyQueryable]  
public IQueryable<Employee> GetEmployees(ODataQueryOptions opts)  
{  
    if (opts.OrderBy != null)  
    {  
        opts.OrderBy.Validator = new MyOrderByValidator();  
    }  
    var settings = new ODataValidationSettings()  
    {  
    };  
    opts.Validate(settings);  
    IQueryable results = opts.ApplyTo(db.Employees.AsQueryable());  
    return results as IQueryable<Employee>;  
}