HTTP-REST-API

Написал http-rest-api на go

https://github.com/evgensr/http-rest-api

Отработка

  • работа с флагами
  • работа с конфигом toml
  • работа с базой данных postgres
  • тестирование
  • логирование с разными уровнями
  • миграция
  • реализация store в памяти
  • сессии через cookie
  • middleware которы добавляет к каждому запросу uuid и логирует его с выводом времени исполнения
  • middleware которы реализует приватные методы api
  • CORS
  • реализация собственных ошибок

 

Подцепляем прод БД на свой компьютер

Иногда надо использовать продовую БД на своей локальной машине.
Например mysql

(далее все описано под мак)

Шаг первый, прокидываем mysql на свой компьютер:

/usr/local/bin/sshpass  -p ПАРОЛЬ  ssh -p22224 -L 3311:127.0.0.1:3306 ubuntu_admin1@200.200.200.200

В последней сборке запретили использовать sshpass, но это можно обойти

Итак, p22224 — это порт удаленной машины

-L 3311:127.0.0.1:3306 — это означает открыть локально порт 3311 с удаленной машины 127.0.0.1:3306

ubuntu_admin1@200.200.200.200 — это куда мы ципляемся

Дальше, в своей программе, которая запущена в докере пишем host.docker.internal или docker.for.mac.host.internal или docker.for.mac.localhost
Все!!!

Docker v 18.03 и выше (с 21 марта 2018 года)

Используйте свой внутренний адрес IP или подключитесь к специальному имени DNS host.docker.internal , которое будет преобразовано во внутренний адрес IP, используемый хостом.

Linux ожидающая поддержки https://github.com/docker/for-linux/issues/264

MacOS с более ранними версиями Docker
Docker для Mac с v 17.12 по v 18.02

То же, что и выше, но вместо этого используйте docker.for.mac.host.internal .

Docker для Mac с v 17.06 по v 17.11

То же, что и выше, но вместо этого используйте docker.for.mac.localhost .

Решение проблемы нашлось тут https://coderoad.ru/24319662/%D0%9A%D0%B0%D0%BA-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D1%83-localhost-%D0%B8%D0%B7%D0%BD%D1%83%D1%82%D1%80%D0%B8-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-Docker