Консольно-ориентированные сервисы: wttr.in, cheat.sh, rate.sx — Идея, использвание, создание
LVEE 2018
Консольно-ориентированные сервисы: wttr.in, cheat.sh, rate.sx — Идея, использвание, создание
Консольно-ориентированные сервисы
На рубеже 2015 и 2016 годов, в дополнение к традиционно существующим типам
программ и служб, доступным пользователям UNIX/Linux, а именно локально инсталлируеммым программам, доступным для использования в консоли или в графической оболочке, и, программам, работающим на внешних серверах, и доступным через web-интерфейс, появился третий, новый, тип программ, совмещающих в себе свойства первых двух типов: так называемые консольно-ориентированные сервисы, которые не требуют инсталляции и доступны к использованию как из терминала, так и из браузера.
Благодаря своей простоте использования, полному отсутствию необходимости
инсталляции и конфигурирования и ряду других преимуществ, они начали быстро завоёвывать популярность среди пользователей
консоли UNIX/Linux систем.
Характерной особенностью таких сервисов является то, что их использование, с точки зрения пользователя, напоминает использование обыкновенного простого веб-сайта, но только в отличие от веб-сайта, для них наличие браузера
не обязательно, вместо него можно использовать простые HTTP-клиенты,
такие как curl, httpie или wget. Путешествие по гиперссылкам при этом
заменяется манипуляциями с URL, который в случае консольных сервисов,
как правило, чрезвычайно прост и интуитивно понятен.
Важным аспектом сервисов является и то, что они построены таким образом,
что отображаются в консоли UNIX/Linux системы и в браузере одинаково.
Это достигается при помощи анализа заголовка User-Agent запроса,
в зависимости от которого ответ генерируется в форме HTML, пригодной для браузера, или в ANSI, пригодной для терминала. Такой подход существенно облегчает новым пользователям порог вхождения и начало использования консольных сервисов.
Следующие команды, выполненные в терминале, позволют получить первое впечатление о том, что такое консольные сервисы, и как они выглядят с точки зрения пользователя:
```
curl be.wttr.in/Minsk
curl rate.sx/btc
curl cheat.sh/lua/copy+file
```
Если использовать эти же строки запроса в браузере, то можно увидеть ответы
аналогичные тем, что получены при запросе из терминала.
Как уже было сказано, сервисы созданные в соответствии с этим таким подходом
обладают множеством преимуществ как в сравнении с сервисами, созданными для использования из Web-браузера, так и в сравнении с традиционными консольными приложениями:
- скорость;
- совместимость;
- очень низкие требования к клиенту;
- прекрасная возможность интеграции;
- простота и краткость;
- анонимность использования;
и так далее.
В рамках популяризации идеи создания консольных сервисов, было создано
несколько типичных консольных сервисов, некоторые из которых получили большую
известность, и сейчас уже знакомы большому количеству активных пользователей консоли UNIX/Linux во всём мире. Некоторые из них описаны ниже.
Кроме того, был создан специальный фреймворк, curlator, который существенно
упрощает создание консольных сервисов, и делает задачу создания консольных
сервисов доступным любому пользователю UNIX/Linux-систем, не требуя от него
никаких специальных знаний. Создание сервиса при этом по сложности соизмеримо с инсталляцией и начальным конфигурированием обычной UNIX/Linux-программы.
Примеры популярных консольно-ориентированных сервисов
wttr.in
wttr.in — сервис прогноза погоды, позволяет получить информацию о погоде в любой точке земного шара на одном из более 50 мировых языков; как и любой консольный сервис не требует никакой инсталляции и конфигурирования.
Примеры использования:
```
curl wttr.in
curl ru.wttr.in
curl be.wttr.in/Minsk
curl uk.wttr.in/Москва
```
cheat.sh
cheat.sh — сервис подсказок по UNIX/Linux-командам и языкам программирования.
С его помощью можно получить подсказку с наиболее популярными примерами
использования основных программ UNIX/Linux (сейчас сервис покрывает более 1000 команд), а так же получить ответы на практически любой вопрос по практически любому языку программирования.
Примеры использования:
```
curl cheat.sh
curl cheat.sh/btrfs
curl cheat.sh/az~snapshot
curl cheat.sh/lua/copy+file
curl cheat.sh/ruby/скопировать+файл
curl cheat.sh/python/створити+дерево+каталогів
```
rate.sx
rate.sx — сервис отслеживания обменных курсов валюты и криптовалюты.
С его помощью можно получить информацию о текущей и исторической стоимости
любой (из 500 наиболее популярных) криптовалюты на рынке, а так же её рыночную капитализацию, объём торгов и множество других характеристик.
```
curl rate.sx
curl rate.sx/btc
curl rate.sx/btc@1w
curl rate.sx/btc/eth@1w
curl eur.rate.sx/btc
```
Другие сервисы
Существует ряд других, менее популярных консольных сервисов, популярность которых, однако, растёт. Актуальный список сервисов доступен по адресу: https://github.com/chubin/awesome-console-services
Об авторе
Игорь Чубин — разработчик программного обеспечения, активный убеждённый пользователь и энтузиаст программного обеспечения. Основная его работа на протяжении последних десяти лет, это разработка высокопроизводительной распределённой реляционной базы данных Exasol.
В свободное от работы время он занимается разработкой и продвижением консольно-ориентированных сервисов.
Github:
https://github.com/chubinTwitter:
https://twitter.com/igor_chubinStackOverflow:
https://stackoverflow.com/users/1458569/Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license
Back