Подтвердить что ты не робот

Использование рельсов для использования веб-сервисов/apis

Я новичок в мире рельсов и пытаюсь создать приложение, чтобы просто разрешить мне искать вещи на Amazon и таких сайтах на основе ввода пользователей.

Я сделал небольшое повторное исследование, и кажется, что httparty gem - хорошее место для начала? Документы ive, найденные до сих пор, хотя и не самые лучшие. Они не дают мне много информации (где поставить код и т.д.).

Есть ли какие-либо существующие учебники или примеры кода, которые я могу использовать или взглянуть, чтобы дать мне лучшее представление о том, как эта вещь работает?

4b9b3361

Ответ 1

Я сейчас работаю над таким приложением, поэтому позвольте мне предложить несколько соображений.

Во-первых, если вы полный новичок в Rails, то в качестве первого шага я предлагаю использовать параллельный подход к проблеме с двумя треками:

  • Узнайте о Rails
  • Узнайте, как взаимодействовать с API (делать запросы и анализировать ответы) в Ruby

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

Для первого я предлагаю сначала написать несколько простых приложений, чтобы понять, как все работает. Даже для простого приложения потребуется определенное количество взаимодействия с пользователем, возможно, сохранение записей в БД и т.д., Проблемы, которые не зависят от использования данных из API. В Rails существует бесконечное количество обучающих программ, но, скажем так, вы можете попробовать Michael Harti Изучить веб-разработку с Rails в качестве отправной точки.

Вторая точка, потребляющая данные API, отличается от проблем проектирования самого приложения. Чтобы узнать больше об этом аспекте проблемы, я бы предложил использовать популярный XML-клиент API (как вы упомянули) HTTParty, который я использую сам. Вместо того, чтобы сразу попробовать использовать методы HTTParty в приложении Rails, в качестве упражнения я бы предложил немного поиграть в консоли (irb). Если вы установите драгоценный камень (gem install httparty), вы можете потребовать его (require 'httparty') из консоли и сразу же выполнить запросы и проанализировать ответы API.

например:.

irb(main):001:0> require 'httparty'
=> true
irb(main):002:0> response = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
=> ...

Как только вы немного познакомитесь с Rails и получите доступ к API в рубине, вы можете перейти к собственно созданию самого приложения. В зависимости от того, насколько сложны ваши запросы к API (-ам), у вас есть несколько вариантов структурирования ваших запросов API в приложении Rails:

  • Сделать запросы частью самого приложения Rails непосредственно из действий контроллера. Это действительно нормально, только если вы собираетесь поддерживать очень ограниченное количество типов запросов (например, простой поиск) в ограниченном числе служб. Все, что сложнее, и ваш контроллер станет толстым, что в инфраструктурах MVC не имеет значения.
  • Создайте отдельный класс ruby ​​(обычно называемый оберткой API), чтобы объединить методы для запросов и анализа ответов API. С драгоценным камнем, подобным HTTParty, вы можете сделать это, просто добавив в класс строку include HTTParty, которая добавит модуль в класс. Есть много примеров того, как это сделать, здесь один.
  • Используйте специальный камень для доступа к определенным API-интерфейсам или создайте один (или более) себя. Есть драгоценные камни для большинства популярных сервисов, например. Twitter, Linkedin, Flickr и т.д. Подробнее см. этот список драгоценных камней API. Это отнимает много боли при взаимодействии с API, но будет работать только для подмножества всех служб.

Вы упомянули, что думаете об использовании HTTParty, который я могу порекомендовать, поскольку я сам его использую. Существуют альтернативы, например Faraday (см. этот список HTTP-клиентов), но я нахожу для большинства задач HTTParty будет хорошо. Документация может быть немного разреженной, но есть группа examples, из которой вы можете работать.

Надеюсь, что это поможет!