【问题标题】:How to add pagination and extra links in response?如何添加分页和额外链接作为响应?
【发布时间】:2017-05-01 22:52:38
【问题描述】:

我正在使用 ASP.NET core 1.1,我目前正在创建一个 Rest API。

为了尊重 Rest 架构的约定,我想在发送响应之前添加分页和额外信息。

这是我的控制器:

[HttpGet(Name = "GetUniversities")]
public IEnumerable<University> GetUniversities()
{
      return _univRepository.GetAll();
}

GetAll():

public IEnumerable<University> GetAll()
{
    return _context.Universities.ToList();
}

实际上,我想做的是渲染这样的东西。

JSON reponse

但我不知道如何动态生成这种数据。

谢谢!

【问题讨论】:

  • 有一个 take 方法可用,你可以用它来做分页。如何调用这些页面取决于您如何配置路由。

标签: rest asp.net-core asp.net-web-api2


【解决方案1】:

我不确定您所说的额外信息是什么意思。但是,您可以构建一个视图模型来将信息发送回用户。这样,您可以标记您需要在响应中发送的任何其他信息。这是一个简单的示例,可以帮助您开始分页。显然,您也可以将其向下传递到您的存储库。

 [HttpGet()]
 [Route("api/GetUniversities/Page/{page:int}")]
 public IEnumerable<University> GetUniversities(int page)
  {
    return _univRepository.GetAll().Skip(page*10).Take(10);
  }

以上假设您一次发回 10 个。

【讨论】:

  • 感谢您的回复。实际上我想做的是编辑我的 GetUniversities() 方法,以便我可以渲染这样的东西。 i.stack.imgur.com/DLcgD.png 。我现在的方法是用 JSON 重新整理我的大学列表。
  • 您在图像中显示的所有内容都可以通过将当前页码流入您的存储库方法和屏幕截图中由 json 表示的 viewModel 来完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多