Rails: Каков предлагаемый подход для извлечения xml из внешнего источника - PullRequest
0 голосов
/ 31 декабря 2010

Rails новичок (хотя долгое время программист) здесь.Я пишу тестовое приложение, которое извлекает данные из нескольких внешних источников (например, Twitter, RSS-каналы и т. Д.) И при определенных обстоятельствах сохраняет эти данные в БД (или представляет их пользователю).Модель данных и представления тривиальны.С чем я сталкиваюсь, так это с помощью фактического XML-вызова HTTP из внешнего источника и десериализации XML-ответа, чтобы я мог запросить / использовать его в своем контроллере / помощнике.Какую библиотеку / драгоценный камень я должен использовать, чтобы достигнуть этого?Я попытался поискать это по сети, но только придумал какую-то статью 2006 года, которая, зная, как быстро развивался Rails, вполне может быть устарела.Ваша помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 01 января 2011

Оформить HTTParty .Это в основном позволяет вам определять объекты, которые ведут себя как модели, но опираются на внешние ресурсы.Пример Twitter хорош - он показывает, как HTTParty позволяет вам извлекать временную шкалу, которая автоматически десериализуется в хеш, и позволяет вам что-то делать с ней.

0 голосов
/ 01 января 2011

Если это твиттер, то есть драгоценные камни, которые позволяют вам принимать вызов api в твиттере и по существу использовать ответ, как и любой другой метод. (т. е. все разбор и все прочее сделано для вас, поэтому вы можете работать с ним в обычном рубине).

Один из таких камней - Твиттер-камень

Как и для всех XML-каналов, вы можете использовать что-то вроде REXML для hpricot. Это библиотеки XML-разбора. Лично я использую REXML, но вы увидите, что хип-ребята пытаются использовать что-то немного «быстрее». Я никогда не находил REXML медленным, но я просто даю вам факты.

Теперь вы говорите

десериализовать ответ xml, чтобы я мог запросить / использовать его в моем контроллере / помощнике.

Вы действительно хотите запросить регулярное выражение из ответа XML, не сохраняя его в БД? Почти как «на лету»?

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