API分页标准

API分页标准,api,pagination,standards,Api,Pagination,Standards,我一直在工作的API和分页是必需的。每个请求中只返回25个元素。我四处寻找标准,我似乎看到了两种不同的情况 链接头 链接: 例如: Link: <https://api.github.com/user/repos?page=3&per_page=100>; rel="next", <https://api.github.com/user/repos?page=50&per_page=100>; rel="last" "paging": {

我一直在工作的API和分页是必需的。每个请求中只返回25个元素。我四处寻找标准,我似乎看到了两种不同的情况

  • 链接头
    • 链接:
  • 例如:

    Link: <https://api.github.com/user/repos?page=3&per_page=100>; rel="next",
      <https://api.github.com/user/repos?page=50&per_page=100>; rel="last"
    
    "paging":  {
        "previous":  "http://api.example.com/foo?since=TIMESTAMP"
        "next":  "http://api.example.com/foo?since=TIMESTAMP2"
    }
    
    问题:


    我应该两者都做吗?话虽如此;“分页”键是正确的键吗?或者“链接”或“分页”

    我认为这取决于您返回的数据结构(将来可能会返回)

    如果从来没有需要自己链接的嵌套对象,那么使用链接头(稍微)更可取,因为这样更正确。嵌套对象的问题是不能嵌套链接头

    考虑以下集合实体:

    {
        "links": {
            "collection": "/cards?offset=0&limit=25"
        },
        "data": [
            {
                "cardName": "Island of Wak-Wak",
                "type": "Land",
                "links": {
                    "set": "/cards?set=Arabian Knights"
                }
            },
            {
                "cardName": "Mana Drain",
                "type": "Interrupt",
                "links": {
                    "set": "/cards?set=Legends"
                }
            }
        ]
    }
    

    没有好办法在标题中包含卡片的链接。

    您是在为自己还是其他人构建API?如果是你自己,那么所有的标准都取决于你。将是一个公开访问的API,它不能回答这个问题。它是您的API还是您为客户机构建的API?如果你发明了它,人们可以访问它,他们就会听任你摆布。你可以随意调用“页面”,强迫他们进入一个疯狂的架构,他们会因为这个架构而鄙视你。但如果是为了客户,他们可能首先会有期望,如果您有疑问,应该询问他们。或者,您可以假设整个世界都期望page=1和per_page=30是一个完全合适的结构,不会混淆。添加您自己的方法完全可以。method=since×tamp=xxx&per_page=30&page=2所以你的答案是“没有标准,我想做什么就做什么”?谢谢你的意见。在我继续开发之前,我会等待更多的回应。最终我从我得到的所有反馈中得出以下结论: