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

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

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

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

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

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

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

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

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

The server requested authentication method unknown to the client

После апгрейда сервера MySQL 8, часть скриптов стала выдавать при коннекте ошибку вида:

Решение: нужно для пользователя поменять способ аутенфикации:

Простой случай сокращения полного ФИО

В случае простого случая необходимости сокращения ФИО вида «Пупкин Василий Иванович» до Пупкин В.И. можно воспользоваться следующей функцией:

LAMP для FreeBSD 12 (Drupal 8-WordPress 5)

Apache:

Правим /usr/local/etc/apache24/httpd.conf, устанавливая ServerName и ServerAdmin. Далее можно запускать:

Mysql 8:

для того чтобы работало старое ПО (новая схема аутенфикации), можно выставить режим совместимости:

Memcached:

PHP:

В /usr/local/etc/apache24/httpd.conf добавим:

PHP Mailer : SERVER -> CLIENT: 220 TLS go ahead

На днях на одном из хостингов столкнулся с проблемой отправки писем, ошибка в консоли была:

Погуглив, нашел решение:

1 12 13 14 15 16 27