c# - 在路径中使用 DateTime 和 Double 变量进行 Web api 搜索
问题描述
我正在开发一个 web api,我需要能够使用 a 搜索路径DateTime
并接收包含它的所有书籍Date
。
因此,例如 /api/books/published/2012
返回日期为 2012 的所有内容。以及api/books/published/2012/8/15
在他们的 2012-08-15 中返回所有内容。
我努力了
public ActionResult GetBooksSortedByDate()
{
if (!_bookList.Any())
return NotFound();
return Ok(_bookList);
}
[HttpGet("published/{published}")]
public IActionResult GetBookByDate(DateTime published)
{
var book = FindBookByDate(published);
if (book is null) return NotFound();
return Ok(book);
}
//returnerar böcker innehållandes sökt datum
private IEnumerable<Book> FindBookByDate(DateTime published)
{
return _bookList.Where(_bookList => _bookList.Publish_date.Equals(published));
}
/api/books/published/2012-8-15
在 Postman 中使用让我得到了当时创建的书。
同时/api/books/published/2012
不给我任何对象。我知道这是因为我已经设置了_booklist.Publish_date.Equals(published));
.
那么我需要用什么来替换.Equals
才能得到类似的东西.Contains(Value)
关于双
我希望能够做到以下几点。
/api/books/price/30.0&35.0 returns all with price between '30.0' och '35.0'
同样的情况,我得到了结果,/api/books/price/33.0
但我不知道如何在 30.0 和 35.0 之间进行价格计算。
我的代码看起来像这样。我相信我需要在这里发送 2 个双打来检查它们?
//Visar /price/value&value
[HttpGet("price/{price}&{price}")]
public IActionResult GetBooksByTwoPrices(double firstPrice, double secondPrice)
{
var book = FindBooksByTwoPrices(firstPrice,secondPrice);
if (book is null) return NotFound();
return Ok(book);
}
private IEnumerable<Book> FindBooksByTwoPrices(double firstPrice, double secondPrice)
{
var allBooksBetweenPrices = _bookList.Where(_bookList => _bookList.Price.Equals(firstPrice) && _bookList.Price.Equals(secondPrice);
return allBooksBetweenPrices;
//return _bookList.Where(_bookList => _bookList.Price.Equals(price));
}
我知道我的var allBooksBetweenPrices = ...
不起作用,因为它不能一次是 2 个值,但我想这有点接近它的方法?
值得注意... 我的Book.cs仅包含 public double price { get; set; }
我是否需要另一个来检查其他价格?
解决方案
对于你问题的第一部分,我建议如下:
_bookList.Where(_bookList => _bookList.Publish_date.ToString("yyyy-MM-dd").Contains(published));
对于第二部分,您可以执行以下操作:
var allBooksBetweenPrices = _bookList.Where(_bookList => (_bookList.Price >= firstPrice) && (_bookList.Price <= secondPrice));
推荐阅读
- r - 在闪亮的应用程序中隔离数据表排序列
- amazon-web-services - 将 Docker 容器 Terraform 部署到 aws ecr
- google-cloud-platform - 是否有用于在 Google Logs Explorer 中以编程方式创建已保存搜索的 API?
- qt - 在 qml 中有没有加载器的替代品?
- reactjs - 找不到模块 'fs' - 使用 csvtojson 包时
- python - Python:如何监控所有可选子产品的可用性电子商务产品?
- python - seaborn 中的颜色因图形类型而异?
- visual-studio-code - Visual Studio Code 中 Bazel 的 Starlark 调试器
- python - AlphaZero 国际象棋“AttributeError:‘Neural_Network’对象没有属性‘policy_value_fn’”
- android - 如何从内部存储中读取视频数据 - Android Studio