По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
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 для запроса всех необходимых ему данных.
img
Шлюз Yeastar серии TA- это VoIP-шлюз с портами FXS для подключения аналоговых телефонов. Yeastar TA отличается богатым функционалом и простотой конфигурирования, идеален для малых и средних предприятий, которые хотят объединить традиционную телефонную сеть компании с телефонной сетью на базе IP. Yeastar TA помогает сохранить предыдущие инвестиции и уменьшить затраты на коммуникации. В серии шлюзов Yeastar TA FXS имеются как аналоговые адаптеры на 1 или 2 аналоговых порта, так и шлюзы на 4, 8, 16, 24 и 32 порта. Шлюзы, начиная с 16 портовых, оснащены выходами Telco на 50 pin. Для подключения всех шлюзов Yeastar серии TA к FreePBX следует сделать следующее. Для примера будет использоваться шлюз Yeastar TA3200. $dbName_ecom = "to-www_ecom"; $GoodID = "2625843094"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName_ecom) or die(mysql_error()); $query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';"; $res_ecom=mysql_query($query_ecom) or die(mysql_error()); $row_ecom = mysql_fetch_array($res_ecom); echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧 Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽'; $dbName = "to-www_02"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); Настройка в FreePBX В веб-панели FreePBX необходимо создать внутренние номера PJSIP, на которых будут регистрироваться аналоговые телефоны, подключенные к шлюзу TA3200. Перейдите в Приложения, а затем в раздел Внутренние номера. Создайте внутренний номер, нажав на Добавить внутренний номер. После этого нажмите на Добавить новый SIP [chan_pjsip] внутренний номер. В открывшемся окне заполните поля Внутренний номер пользователя, Отображаемое имя, Исходящий Caller ID и Секрет (пароль). После чего нажмите Сохранить. Созданные новые номера отобразятся в списке Теперь необходимо подключиться к веб-интерфейсу шлюза TA3200. Настройка Yeastar TA3200 По умолчанию шлюз получает IP-адрес от DHCP сервера. Чтобы узнать его IP-адрес, подключите в один из портов FXS аналоговый телефон. Затем наберите *** и нажмите 1. Шлюз продиктует IP-адрес. Введите его в адресную строку браузера. По умолчанию логин admin, пароль password. Перейдите в раздел Система. Перейдите в Сетевые настройки, подпункт Настройки LAN. Проверьте настройки IP-адреса. Далее Вам необходимо подключить шлюз к FreePBX. Перейдите в раздел Шлюз. Откройте VoIP-настройки, подпункт Серверы VoIP. Выберите сервер VoIP и откройте его для редактирования. Во вкладке Основные настройки укажите Имя сервера, задайте IP-адреса и домен Вашего FreePBX. Для сохранения введенных настроек нажмите Сохранить, затем нажмите Применить. Перейдите в VoIP-настройки, подпункт Правила набора. Выберите необходимый шаблон и откройте его на редактирование. В панели редактирования настроек задайте Имя шаблона и в поле Правило укажите . (точку). Для сохранения настроек нажмите Сохранить, а затем нажмите Применить. Перейдите в раздел Порты, подраздел Порты. Выберите необходимый порт, в который подключен аналоговый телефон, и откройте его на редактирование. Укажите настройки для подключения номера на FreePBX Имя Caller ID и номер Caller ID такие же, как на FreePBX. В поле Сервер VoIP выбирите ранее созданный сервер VoIP. В поле Имя и Имя регистрации укажите учетные данные созданного номера. В поле Пароль укажите Секрет (пароль) заданный на FreePBX. В поле From укажите тот же номер, что и в поле Номер Caller ID. Таким же образом заполните номер DID. Выберите ранее отредактированное Правило набора Нажмите Сохранить и затем Применить. Статус регистрации порта на FreePBX будет отображен в веб-панели шлюза. Перейдите в раздел Статус. А затем перейдите в пункт Порты. Указанный порт будет иметь статус ОК при успешной регистрации.
img
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно. Основы Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры: /home/user1/tmp/test.sh - полный путь; ~/tmp/file1 - относительный путь; Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ. Команды для работы с файлами и директориями Команд довольно много, я перечислю самые, на мой взгляд, часто используемые: cd - смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root; pwd - команда покажет текущий путь к директории, в которой вы находитесь в данный момент; ls - вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax, то команда выведет форматированный список всех файлов и директорий (в том числе скрытые); cat - показывает содержимое файла, к примеру – cat /root/file.txt; tail - например, tail /root/file.txt, выводит только конец файла, удобно при работе с логами; cp - копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию mkdir - создание директории, например, mkdir /root/1; rmdir - удаление директории, синтаксис такой же, как и у команды выше; rm -rf - очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами; mv - переименование файла или директории, сначала указывается целевая директория и затем её новое название; locate - поиск файла с заданным названием; Для наглядности, посмотрите на вывод команды tail # tail install.log Installing dosfstools-3.0.9-4.el6.i686 Installing rfkill-0.3-4.el6.i686 Installing rdate-1.4-16.el6.i686 Installing bridge-utils-1.2-10.el6.i686 Installing eject-2.1.5-17.el6.i686 Installing b43-fwcutter-012-2.2.el6.i686 Installing latrace-0.5.9-2.el6.i686 Installing trace-cmd-2.2.4-3.el6.i686 Installing crash-trace-command-1.0-5.el6.i686 *** FINISHED INSTALLING PACKAGES *** В примере выше, команда tail вывела только последние 11 строк. Работа с архивами Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком :) tar cf example.tar /home/example.txt - создание .tar архива, который будет содержать в себе текстовый файл example.txt; tar cjf example1.tar.codez2 /home/example1.txt - команда с тем же функционалом, только будет использоваться сжатие Bzip2; tar czf example2.tar.gz /home/example2.txt - опять архивация, только на этот раз со сжатием Gzip; tar xf example.tar - распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно); Работа с .rpm пакетами Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution :) Команды требуют наличие прав супер - пользователя. rpm -qa - вывод списка всех установленных RPM пакетов в системе; rpm –i rpmpackage.rpm - установка пакета с именем rpmpackage; rpm –e rpmpackage - удаление пакета с таким именем; dpkg -i *.rpm - установка всех пакетов в директории; Про жёсткие диски Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS - сервер) umask 0077
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59