Что такое ngResource "способ" обработки нумерации страниц

Создание класса ресурса User из углового ресурса хорошо в том смысле, что все пользователи становятся экземплярами User. Это упрощает CRUD для каждого человека. Но это будет работать только в том случае, если ответ является массивом

Вот простая демонстрация ( вдохновленная угловым)

// Define User class
var User = $resource('/user/:userId', {userId: '@id'}, {
    query: {method: 'GET', isArray: true, params: {limit: 25} }
});

// We can retrieve a collection from the server
var users = User.query(function() {
    // GET: /user?limit=25
    // server returns: [ {id:456, name:'jimmy'}, {...} ];

    var user = users[0];
    // each user is an instance of User
    expect(user instanceof User).toEqual(true);
    user.relation = "Single";
    // non GET methods are mapped onto the instances
    user.$save();
});

Теперь, когда у вас 1000 пользователей, как лучше всего разбивать страницы на страницы?

Я видел много API в мои дни, и это было бы примером того, как они все вместе. (это даже включает статус ответа 200 OK с другим кодом состояния и сообщением об ошибке)

{
    errors: null,
    status: 200
    data: {
        href: "/user?limit=30&offset=100&online=true",
        offset: 100,
        limit: 25,
        totalItems: 987,
        totalPages: 45, // Math.celi(totalItems / limit)
        currentPage: 4,
        first: { href: "/user?limit=25&online=true" },
        previous: { href: "/user?limit=25&offset=75&online=true" },
        next: { href: "/user?limit=25&offset=125&online=true" },
        last: { href: "/user?limit=25&offset=975&online=true" },
        items: [
            {id: 456, name: "jimmy"}
        ]
    }
}

Если это будет общедоступный API, вы хотите, чтобы вся / часть этой информации была отправлена ​​в ответе json? Я лично считаю, что это запланированная и ненужная работа сервера, которая может или не может использоваться всеми пользователями

  • сообщение об ошибке должно отвечать кодом состояния>= 400
  • код состояния уже доступен в заголовках, зачем нужен еще один?
  • ngResource просто работал бы, если бы вы получили массив вместо объекта без какого-либо преобразования ответа
  • любая другая информация знает, если вы просто знали общее количество пользователей
    • для этого требуется, чтобы json возвращал объект для отправки этой информации, но вы также можете использовать заголовки и сохранить ответ в виде массива

Я, возможно, хотел бы получить какой-то 206 частичный ответ контента, используя только заголовки запроса диапазона, я использовал его только для байтов файла. но возможно ли также использовать какой-либо другой вид коллекции?

Range: user=75-100,600- ;get user 75 to 100 and 600 to 978

разве это не то, что 206 все?

0 ответов

Другие вопросы по тегам