Как сделать простейшее API для своего проекта?

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

В моем случае сервер защищен от «чужих» протоколом SSL и сертификатом .p12 с паролем. Соответственно для получения данных по API на сторонних ресурсах необходимы будут pem и key файлы от выданного пользователю сертификата.

Для некоторых может быть удобным получение «сессионного ключа» для авторизации и допуска к API.  В принципе доработать не сложно кому нужно. Приведенные ниже примеры — не рабочие, не хватает части файлов, размещено просто для того чтобы можно было понять принцип разработки.

На сервере в корне создадим файл api.php:

Как мы видим — суть его, поймать на входе команду, и выполнить файл из папки /api/, совпадающий с именем команды. Так мы избавляемся от головной боли с раширением количества команд API.

В папке /api/  создадим первую команду нашего API — файл version:

Теперь пример использования данного API (для удобства обернуто в класс):

Результат выполнения:

Включаем поддержку SSL в Postfix, FreeBSD 10.x

Предыдущий пост (включение подписи DKIM) не помог избавиться от попадания в папку СПАМ на ящиках gmail, поэтому следующим этапом попробуем включение принудительного шифрования писем SSL на домене.

Сначала сделаем самоподписный сертификат:

Добавляем в Postfix поддержку SSL:

В файле /usr/local/etc/postfix/master.cf нужно добавить:

и перестартовать postfix

Настройка DKIM подписи на FreeBSD 10.4 почтовый сервер Postfix

Зачем она нужна? Например для того чтобы почтовые сервера gmail.com, mail.ru и ряд других не отправляли письма с вашего домена в папку «спам».

Ставим opendkim:

Создадим файл конфигурации opendkim на основе примера:

Получим файл вида:

Преобразуем его к виду:

В файл /var/db/dkim/TrustedHosts добавим хосту с которых разрешены подключения:

Создаем каталог для хранения ключей и создаем собственно сами ключи:

Создадим пользователя opendkim,зададим владельца и права доступа на файлы:

Создаем таблицу KeyTable. В ней хранится список соответствий между селекторами, доменами и файлами с закрытыми ключами. Формат записей:
<селектор>._domainkey.<домен> <домен>:<селектор>:<путь к закрытому ключу>

Например:

Создаем SigningTable. В данной таблице хранятся соответствия между определенными email-адресами и записями в KeyTable.

Добавляем в него:

Далее пробуем стартовать сервис:

Если всё хорошо, правим конфигурацию postfix:

Добавляем:

Перезапускаем postfix:

Если всё хорошо, остался последний шаг: правка DNS. Посмотрим содержимое:

Добавим эту запись в зону TXT  DNS. И пробуем отправить письмо например на gmail.com. В «исходном письме» должна присутствовать запись о DKIM.

 

Последовательное выполнение команд в Linux

Иногда нужно одной строчкой выполнить последовательно несколько команд в терминале. Причем сделать это с контролем корректности выполнения предыдущей команды. Простейший способ — выполнять их через оператор &&, например:

«Обратный» знак разделения это || — означает выполнение следующей команды, если предыдущая завершилась с ошибкой

Карта «Как начался майнкрафт»

Представляем вам самую эпичную карту на свете сделанную великим Тёмой. С большим старанием за один день. Она назывется «Как начался майнкрафт». Скачать на версию 1.12 можно тут

1 108 109 110 111 112 295