REST и большие запросы к базе данных - PullRequest
3 голосов
/ 09 декабря 2010

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

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

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

http://mywebservice/employees/0/100

У меня есть состояние для последнего отправленного запроса, т.е. 100

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

http://mywebservice/employees/101/200

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

1 Ответ

1 голос
/ 09 декабря 2010

Вы упомянули 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 сам по себе является протоколом без сохранения состояния, но в целом система, безусловно, имеет состояние, которое может со временем меняться (например, при выполнении действия записи в режиме POST).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...