По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
API расшифровывается как Application Programming Interface (программный интерфейс приложения). Что же это такое?
По сути, это описание способов взаимодействия между программами, как они могут общаться и передавать данные друг другу.
Рассмотрим пример из жизни:
Приходя в ресторан вы взаимодействуйте с официантом - можете попросить меню, сделать заказ, попросить принести счет. Официант является интерфейсом вашего взаимодействия с рестораном - вам не нужно знать о том как готовится еда, ингредиенты, как рассчитывать чек, все это сделает ресторан, и отдаст вам результаты при помощи официанта, который в этом примере представляет собой API ресторана. От вас скрываются сложные детали и просто происходит общение между двумя системами - клиентом и рестораном.
Вернемся к компьютерам. Предположим, что у нашей платформы доступного айти образования Merion Academy есть интерфейс работы с клиентами - тот самый API, в котором есть определенные функции, куда можно отправить какой - то запрос, и получить ответ. Представим, что у нашего API есть функция вернуть список курсов по Linux, на которые сейчас действует скидка 50% - в такой случае браузер должен сделать запрос к нашему API на получение такого списка курсов, а ответ получить эти данные и отрисовать на странице.
Важно учесть, что API интерфейсы не всемогущи - вы получите только те функции, которые заложил разработчик. Например, если помимо курсов по Linux со скидкой 50% вы захотите еще получить прогноз погоды в селе “Добрые Пчёлы” - то сорри, наш API пока так не умеет. Для добавления каждой такой новой функции программист должен разработать ее.
API состоит из двух частей: это сам интерфейс взаимодействия, скажем так некий мост, портал, окно, а вторая часть - это его описание, которое отвечает на вопрос “а как этой штукой то пользоваться?”
Взаимодействие может быть не только между клиентом и сервером, как в примере с нашей ИТ платформой, но и между серверами. Представьте: решили вы полететь в солнечный Дубай, купили билетик на сайте, а он вам еще и погоду показывает. Как же так! Неужели у компании по продаже билетов еще и метеорологические датчики по всему миру стоят, которые сообщают о погоде? Конечно нет - сайт с билетами взаимодействует с каким - то сервисом погоды по API, который как раз занимается погодными данными. А сайт с билетиками еще и скорее всего платит за каждый запрос небольшую денюжку.
Кстати, API может быть не только у веб - сервисов, где общение происходит по протоколу HTTP. API есть и у операционных систем, для взаимодействия с самой операционкой и железом. Например, если вы создаете свой аналог инстаграма, то для работы с камерой на устройстве вам нужно взаимодействовать с API системы, которая уже знает как работать с камерой, а не придумывать что-то самому с нуля, да еще и для миллиона разных устройств.
API действительно делает жизнь разработчика удобнее, а чтобы работа с API не превратилась в бардак, оно стандартизировано. Самый популярный, это конечно же REST API, но перед тем как перейти к нему, скажем пару слов про SOAP (Service Object Access Protocol), который появился несколько раньше и описывал правила синтаксиса для сообщений запросов и ответов, отправляемых веб-приложениями. Подробнее про SOAP - тут.
Ну и все, кто поддерживал SOAP должны были обмениваться XML-сообщениями между системами через HTTP или SMTP. XML (Extensible Markup Language), он же расширяемый язык разметки - это формат для хранения и передачи данных, в котором данные размещены в тегах, что делает их легко читаемыми как для компьютера, так и для человека.
Развиваясь, люди перешли на REST, который в отличии от SOAP не является протоколом, а является архитектурным стилем. В SOAP приходилось писать в разы больше кода и заворачивать каждое сообщение в XML.
REST же делает данные доступными в качестве ресурсов, которые представлены уникальным URL-адресом, и можно запросить этот ресурс, указав его URL-адрес. Например чтобы посмотреть свои подписки на ютубе нужно выполнить запрос на вот такой адрес https://www.youtube.com/feed/subscriptions.
Веб-API, соответствующие стандартам подхода REST, называются RESTful API. Они используют различные HTTP-запросы для работы с ресурсами, такие как GET - запрос, который используется для получения информации или POST, который в свою очередь нужен для отправки данных.
RESTful системы поддерживают обмен сообщениями в различных форматах, таких как самый обычный текст, HTML формат, YAML, XML и JSON, в то время как SOAP разрешает только XML, как мы и сказали ранее. Самый популярный это конечно JavaScript Object Notation, он же JSON - простой и универсальный формат, который содержит в себе набор пар ключ:значение.
Также хотим сказать про штуку, которая называется gRPC (Remote Procedure Calls) которая в основном используется для связи между разными сервисами и работает очень быстро благодаря тому что тут используется протокол HTTP/2 который работает гораздо быстрее засчет всяких новинок вроде сжатия хедеров, а вместо JSON или XML используется формат Protocol Buffers (protobuf), который работает быстрее и потребляет меньше ресурсов при работе с ним. Работает все это настолько быстро, что можно делать вызов к функции на другом сервере с такой же скоростью, как если бы она находилась на нашем. Подробнее про gRPC и Protobuf - тут
Ну и не можем не сказать про модный GraphQL - это язык запросов для API который позволяет указывать точные данные, которые ему нужны, и упрощает получение и склейку данных из нескольких источников, поэтому разработчик может использовать один вызов API для запроса всех необходимых ему данных.
Когда клиент ожидает ответа специалиста, ждет окончания трансфера или поставлен в очередь он привык слышать из своей трубки какие-либо звуки. Определенные компании предпочитают выжимать из этого времени максимум и озвучивать клиенту рекламный ролик, а другие просто дают клиенту возможность послушать приятную музыку. В статье поговорим о том, как работает модуль Music on Hold (музыки ожидания) и как его настроить в FreePBX 13.
Теория
В целом, данный модуль предназначен для уведомления звонящих о том, что они всё еще находятся на линии звонка. Он позволяет легко добавлять вашу собственную музыку или звуковые файлы в систему в .wav или .mp3 формате, или же просто «стримить» их в режиме онлайн. Добавление music on hold является отличным способом персонализации вашей АТС. FreePBX позволяет использовать два различных способа настройки мелодии при удержании вызова – с помощью файлов, которые должны быть загружены на ваш сервер и далее проигрываются при звонке, или при помощи стриминга – АТС подключается к какому-либо аудио источнику через сеть. Как пример источника – любой интернет стрим, стрим со звуковой карты или любого другого записывающего устройства. Различные категории MoH могут быть наложены на любой входящий маршрут, так же как и на очередь, ринг-группу, исходящий маршрут или конференцию. Важный момент – категории, назначенные локально на уровне ринг-группы или очереди, смогут переопределить значение MoH для целого маршрута, но как только звонок покинет ринг-группу – для него снова будет установлено такое значение MoH, как настроено для входящего или исходящего маршрута.
Настройка музыки в ожидании
Порядок настройки Music on Hold приведен далее.
Для начала во вкладке Settings необходимо выбрать Music on Hold и нажать «Add Category»
Далее необходимо присвоить имя и тип - файл или стрим
Затем нужно нажать Submit и кликнуть на иконку редактирования созданной категории MoH. Таким образом, вы попадете в поле редактирования категории, где можно загрузить аудиофайлы, выбрать формат для их конвертации и так далее
По умолчанию, IP - АТС проигрывает загруженные файлы в порядке очереди. Включенная опция Enable Random Play позволяет озвучивать аудио - файлы поставленному на удержание абоненту в случайном порядке.
Важный момент – при загрузке аудиофайла возможно настроить уровень громкости.
Если же используется тип Streaming, то в поле тип необходимо указать «Custom Application»
Поле Application заполняется в соответствии с источником стрима – будь это онлайн стрим или путь к скрипту для использования линейного порта на звуковой карте.
Как пример заполнения строки:
/usr/bin/testmpg -q -s --mono -r 8000 -f 8192 -b 1024 http://urlofyourlivestreamformoh/
Использование стриминга для MoH может серьезно повлиять на производительность АТС – по причине повышенного использования полосы пропускания или проблем с кодированием. Как пример – при множестве одновременных звонков с их попаданием под одну стриминговую категорию, нагрузка будет существенно возрастать. Если же эти звонки будут использовать иной, нежели ulaw кодек, такой, как, например G.722, АТС будет вынуждена транскодировать все потоки в G.722 – в случае маломощных серверов это может оказаться критичным.
В Linux скрытые файлы - это файлы, которые не отображаются напрямую при выполнении стандартного списка каталогов ls.
Скрытые файлы, также называемые dotfiles в операционных системах Unix, - это файлы, используемые для выполнения некоторых сценариев или для хранения конфигурации некоторых служб на вашем хосте.Некоторым популярным примером скрытых файлов являются файлы, содержащиеся в домашнем каталоге пользователя: .bashrc, в котором хранятся сценарии инициализации пользователя, или .bash_logout, который выполняется всякий раз, когда вы выходите из сеанса bash.
В некоторых случаях вам необходимо иметь возможность легко находить скрытые файлы для настройки параметров конфигурации по умолчанию. Мы рассмотрим все методы, используемые для отображения скрытых файлов в Linux.
Показать скрытые файлы в Linux с помощью ls
Самый простой способ показать скрытые файлы в Linux - это использовать команду ls с опцией -a, что значит all.
$ ls -a [path]
Например, чтобы показать скрытые файлы в домашнем каталоге пользователя, вы должны выполнить эту команду. Кроме того, вы можете использовать флаг -A для отображения скрытых файлов в Linux. При использовании A подразумеваемые файлы не будут отображаться (например, предыдущая папка также называется .)
$ ls -al ~
total 356
drwxr-xr-x 14 schkn schkn 4096 Oct 26 06:08 . --- Не показано с -A
drwxr-xr-x 3 root root 4096 Jan 5 2019 .. --- Не показано с -A
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
$ ls -A ~
total 348
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
В этом случае скрытыми файлами являются файлы bash_history, bash_logout, bashrc и файлы кэша.
Показать исключительно скрытые файлы с помощью ls
В некоторых случаях вас могут не интересовать другие файлы, кроме тех которые скрыты. Чтобы показать исключительно скрытые файлы в Linux, используйте команду ls со специальным регулярным выражением.
$ ls -dl .[^.]* [path]
Например, используя пример, который мы описали ранее, мы получили бы следующий результат.
$ ls -dl .[^.]* ~
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
drwx------ 5 schkn schkn 4096 Jan 5 2019 .config
Показать скрытые файлы в Linux, используя find
Еще один эффективный способ найти скрытые файлы во всей вашей системе - использовать команду find.
Чтобы показать все скрытые файлы в вашей системе, запустите find с опцией name.
$ find / -name ".*" 2> /dev/null
Обратите внимание, что выходные данные команды перенаправляются в /dev/null, чтобы не отображаться в каталогах, к которым у вас нет доступа.
/dev/null - специальный файл в системах UNIX, представляющий собой так называемое "пустое устройство", в которое всегда успешно происходит запись. Обычно используется для того чтобы туда отправлять ненужный вывод программы.
Чтобы показать скрытые файлы в текущем рабочем каталоге, запустите find с параметром maxdepth.
$ find . -name ".*" -maxdepth 1 2> /dev/null
Показать скрытые каталоги используя find
Чтобы показать скрытые каталоги в текущем рабочем каталоге, без рекурсивного поиска, используйте команду find и укажите тип d.
$ find . -name ".*" -maxdepth 1 -type d 2> /dev/null
Показать скрытые файлы в Linux, используя dir
Команда dir - это команда, близкая к команде ls в Linux: она отображает содержимое каталога в вашей системе.
Подобно команде ls, ее можно использовать для отображения скрытых файлов в каталоге.
Чтобы показать скрытые файлы, выполните команду dir с опцией -a или -A.
$ dir -a [path]
$ dir -A [path]
Например, чтобы показать скрытые файлы в вашем домашнем каталоге, вы должны выполнить:
$ dir -A ~
.bash_history .dbshell .mongorc.js .viminfo scripts
Обратите внимание, что команда dir также показывает скрытые каталоги, которые могут находиться в пути, который вы ищете.
Подобно команде ls, вы можете выбрать отображение скрытых файлов исключительно в папке, чтобы не беспокоиться обо всех остальных файлах.
$ dir -dl .[^.]* [path]
Например, в домашнем каталоге это даст такой вывод:
$ dir -dl .[^.]* ~
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
Отображение скрытых файлов в среде рабочего стола GNOME
Наконец, для тех, кто работает в среде рабочего стола GNOME, вы также можете показывать скрытые файлы, когда просматриваете систему с помощью проводника.
Чтобы отобразить скрытые файлы через интерфейс GNOME, нажмите небольшую стрелку вниз, расположенную в верхнем правом углу экрана.
При появлении небольшого выпадающего меню обязательно установите флажок «Показать скрытые файлы» (Show Hidden Files).
Как следствие, скрытые файлы и папки будут видны в проводнике.
Вывод
В этом руководстве вы увидели все способы отображения скрытых файлов в Linux: с помощью команды ls, но у вас также есть команда find и dir. Если вы используете среду рабочего стола GNOME, есть возможность легко их отобразить с помощью небольшой опции.