【发布时间】:2021-06-22 20:24:48
【问题描述】:
我开发了一个 .NET Core v5 WebAPI 和 Integrated OData v4。 如果我从控制器返回正常的学生列表并执行 OData 查询,一切都会正常工作。
但我的 API 有一个标准的成功和失败响应结构。一切都只在 data 属性中。
{
"status": "SUCCESS",
"data": [
{
"name": "Student A",
"age": 10
},
{
"name": "Student B",
"age": 11
},
{
"name": "Student C",
"age": 12
},
{
"name": "Student D",
"age": 13
}
]
}
fetch Students with age > 11 的 OData URL 查询可以是什么。这是我尝试过的
https://localhost:44351/api/v2/Students/GetAll?$filter=data/age gt 11
这是我的终点。 此外,我只为搜索、过滤、排序和计数配置了 OData。展开不是我现在考虑的事情
[HttpGet]
[MapToApiVersion("2.0")]
[Route("Success")]
[EnableQuery]
public IActionResult Success20()
{
var listOfData = new List<Student>();
listOfData.Add(new Student { Name = "Student A", Age = 10 });
listOfData.Add(new Student { Name = "Student B", Age = 11 });
listOfData.Add(new Student { Name = "Student C", Age = 12 });
listOfData.Add(new Student { Name = "Student D", Age = 13 });
return Ok(new SuccessResponse<List<Student>>
{
Data = listOfData
});
}
这是我对成功的标准回应
public class Response
{
protected ResponseStatus ResponseStatus { get; set; }
public string Status { get; set; }
}
public class SuccessResponse<T> : Response
{
public T Data { get; set; }
public SuccessResponse()
{
ResponseStatus = ResponseStatus.SUCCESS;
Status = ResponseStatus.SUCCESS.ToString();
}
}
【问题讨论】:
标签: c# rest asp.net-core odata webapi