Carga útil de resposta de paginação de uma API RESTful

Eu quero apoiar a paginação na minha API RESTful.

Meu método de API deve retornar uma lista de produtos JSON por meio de/products/index. No entanto, existem potencialmente milhares de produtos, e eu quero paginá-los, então minha solicitação deve ser algo como isto:

/products/index?page_number=5&page_size=20

Mas como minha resposta JSON precisa ser? Os consumidores da API normalmente esperariam metadados de paginação na resposta? Ou é apenas uma matriz de produtos necessária? Por quê?

Parece que a API do Twitter inclui metadados:https://dev.twitter.com/docs/api/1/get/lists/members (veja Exemplo de Pedido).

Com metadados:

{
  "page_number": 5,
  "page_size": 20,
  "total_record_count": 521,
  "records": [
    {
      "id": 1,
      "name": "Widget #1"
    },
    {
      "id": 2,
      "name": "Widget #2"
    },
    {
      "id": 3,
      "name": "Widget #3"
    }
  ]
}

Apenas uma matriz de produtos (sem metadados):

[
  {
    "id": 1,
    "name": "Widget #1"
  },
  {
    "id": 2,
    "name": "Widget #2"
  },
  {
    "id": 3,
    "name": "Widget #3"
  }
]

questionAnswers(3)

yourAnswerToTheQuestion