Ruby в Сети

Вы знаете, как писать скрипты и простые игры, используя Ruby, но пока все это ограничено вашей локальной системой. В этом разделе вы узнаете, как вырваться за её пределы и начать забавляться в интернете.

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

Ruby (или гем, который вы скачали) даст вам возможность отправлять HTTP-запросы, GET, POST, PUT или DELETE на ваш выбор, и будет ожидать ответа. Вы обнаружите, что необходимо разобраться, что приходит в ответ, извлечь полезную информацию, вне зависимости от того, будет это содержимое HTML-страницы, которую вы хотите получить, или объект JSON, возвращенный от API какого-либо сайта. Каждый гем отправляет запросы по-своему, но принципы одинаковы для всех. С другой стороны, Ruby предоставляет инструменты для ожидания запросов и отправки ответов... прямо как веб-сервер!

Описанные выше вопросы необходимо знать по двум причинам. Во-первых, важно понимать фундаментальные основы того, как работают веб-запросы и ответы, если вы хотите создавать страницы. Ruby on Rails позаботится о множестве базовых вещей за вас, если это будет вам нужно, но будет полезно поработать немного собственными руками, прежде чем вы воспользуетесь фреймворком. Во-вторых, помимо Rails существует целый мир технологий, и вы должны уметь пользоваться инструментами, которые помогут вам создать простенькую Ruby-программу, способную работать в Сети.

Этот урок будет не таким длинным, как несколько предыдущих, и вы совсем скоро начнете писать свой код. Собственно, практическая работа - это то, на что вы и будете тратить все свое время. Начнем спамить.

Пункты для размышления

Посмотрите эти пункты сейчас, а затем с их помощью проверьте себя после выполнения задания.

  • Как можно создать HTTP-запрос, используя Ruby?
  • Как вы распарсите ответ, чтобы получить его содержимое?
  • Что значит аббревиатура REST?
  • В чем различие между запросами GET и POST (выглядит знакомо?)

Задания

  1. Откройте терминал и введите $ curl http://www.google.com, после чего посмотрите на здоровенный кусок текста, который будет возвращен в ответ на вашу команду. Это главная страница Google и она должна дать представление о том, какие ответы вы можете получить в результате выполнения различных типов запросов.
  2. Прочтите главу 14 из Beginning Ruby, страницы 413-432, чтобы получить представление об интернете с Ruby. Текст довольно интенсивно объясняет детали, так что вдохните поглубже и вперед...
  3. Прочтите невероятно простое Руководство по REST на Ruby, которое просто покажет вам, насколько просто отправлять HTTP-запросы, используя Ruby и затем получать ответы.
  4. Прочтите это объяснение, как работает HTTP начиная с текста о методе POST. Можее закончить чтение перед разделом о HTTP прокси.

Дополнительные ресурсы

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

  • Добавьте что-нибудь сами!

Поделиться уроком: