Где: Санкт-Петербург Когда: 29 июня 2023 Read-only API с JSON данными ============================ Навеяно наблюдениями за парой проектов. Парой эдаких стартапов, которые хотят быть классными, современными, привлекательными для соискателей. С ИНТЕРЕСНЫМИ ЗАДАЧАМИ. Короче, вот это все, что обычно пытаются впихнуть HRы в свои презентации, когда хантят. Кубер ради 10 HTML страниц уже не шутка, а вполне себе реальность. Надо же оправдывать шильдик DevOps в конце-то концов, верно? Но речь не об этом. Вместо того, чтобы мокать read-only API в каком-нибудь микрофреймворке, я предпочитаю взять обычный nginx. Способ простой как валенок. Не требует программирования и стоит три копейки. Скажем, справочные данные отдавать. Допустим, что мы хотим иметь API раут вида: /api/v1/directories/cities, который отдает данные о городах. Для простоты, мы можем создать структуру каталогов в нашем хосте. Прям берем и делаем: ``` # У вас, разумеется, структура будет другая, но смысл не изменится mkdir -p /var/www/megaservice.com/api/v1/directories/cities ``` Далее, мы добавляем немного магии заголовков в конфигурацию хоста в nginx. ``` location /api { add_header Content-Type application/json; } ``` Перезагружаем nginx и проверяем: ``` # Запрос curl -I http://megaservice.com/api/v1/directories/cities # Ответ HTTP/2 200 server: nginx/1.18.0 (Ubuntu) date: Tue, 29 Jun 2023 12:36:07 GMT content-type: application/octet-stream content-length: 3375 last-modified: Tue, 29 Jun 2023 12:26:50 GMT etag: "64a4100a-d2f" content-type: application/json accept-ranges: bytes ``` "И это все?" -- спрашивает удивленный читатель. Да, епта. Это все, что нам нужно. Никаких ноджиэсов, никаких дополнительных сервисов и прочей хуеты. Директории создает руками, туда складываем нужные там файлы с данными в формате json. Накидываем Content-Type в ответ и вуаля -- у нас работающий статический API с данными.