использовать веб-сервисы REST в качестве источника данных для Lift?

Есть ли способ использовать веб-сервис (в данном случае REST) ​​в качестве источника данных для приложения Lift? Я могу найти несколько руководств/примеров использования Lift для предоставления REST API, но в моем случае данные размещаются в другом месте и экспортируются как веб-служба REST. Указатели на документ приветствуются.

Спасибо, Джефф


person Jeff Bowman    schedule 07.04.2010    source источник


Ответы (4)


На самом деле это не связано с Лифтом. Уже есть много разной информации:

  • Библиотека HttpClient, как уже было предложено,
  • или Dispatch библиотека Scala для доступа к службам HTTP
  • информация о том, как кэшировать данные в Scala различными способами, если вам это нужно

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

  1. уменьшить время отклика, так как вы не зависите от удаленного сервиса (если вы делаете синхронную обработку данных)
  2. избегайте отказа в обслуживании в случае отказа удаленной службы. В противном случае ваше приложение будет генерировать множество сокетов для чтения данных и исчерпания ресурсов (либо сокетов, либо потоков, либо чего-то еще).
  3. не превышайте SLA удаленного сервиса, так как многие сервисы ограничивают количество запросов, которые вам разрешено выполнять в некоторую единицу времени.

Так что вы можете просто сесть и собрать эти вещи вместе, вот и все.

person Alexander Azarov    schedule 12.04.2010

Если вы действительно хотите проявить фантазию, вы можете создать реализацию Record для источника данных на основе REST. Уже существует один из них, который работает с CouchDB. Используя модуль lift-couchdb, взаимодействие с CouchDB абстрагируется, и все, с чем вы имеете дело, — это код Scala. Здесь есть короткая вики-страница с инструкциями о том, как начать работу с lift-couchdb:

http://www.assembla.com/wiki/show/liftweb/CouchDB

Соответствующие файлы исходного кода доступны здесь:

http://github.com/lift/lift/tree/master/framework/lift-persistence/lift-couchdb/src/main/scala/net/liftweb/couchdb/

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

person Aaron    schedule 01.09.2010

Я поместил слой scala поверх HttpClient и затем использовал его. Я давно хотел выложить это на гитхаб.

person Jim Barrows    schedule 08.04.2010
comment
Затем сделать его. Если вы добавите код, я легко дам вам балл!! ;) - person Alexandre Martins; 30.06.2011

Я использую Dispatch (который является оболочкой для HttpClient) для вызовов REST. Выглядит красиво и просто

person Eugene Platonov    schedule 12.08.2011