REST и большие запросы к базе данных

Как мы все знаем, веб-служба ReST не может содержать состояние - это проблема для меня сейчас, когда я рассматриваю большие транзакции с базой данных, и мне интересно, можете ли вы помочь.

У моего веб-сервиса ReST есть одна главная роль - делать операции CRUD с базой данных. Проблема в том, что я должен запросить таблицу с тысячами строк и отправить ее клиенту как XML - это не хорошо. Это очень неэффективно, чтобы требовать тысячи записей, но вы не можете выполнять частичные транзакции (например, используя ключевое слово ROWNUM в Oracle) с веб-службой REST. Итак, как вы обходите это?

Один из возможных способов получения записей из таблицы 100 за раз:

http://mywebservice/employees/0/100

Я сохраняю состояние для последнего запроса, отправленного i.e 100

следующий запрос:

http://mywebservice/employees/101/200

и т.д. Но неужели это строго успокаивает?

Ответ 1

Вы упомянули CRUD, но ваш пример выглядит только как чтение. Почему бы вам не ввести пейджинг?

# items 0 to 99
GET /employees?page=0&size=100
# items 100 to 199
GET /employees?page=1&size=100

Не ясно, какое состояние вы имеете в виду в своем примере. Говоря о Restful over HTTP api, да HTTP сам по себе является протоколом без учета состояния, но общая система, безусловно, имеет состояние, которое может меняться со временем (например, при выполнении действия записи la POST).

Может быть, вы можете привести пример, который пишет действия (вы упомянули транзакции), которые вы пытаетесь открыть через Restful api?