PHP в роутер на Go.
Сразу скажу, я PHP программист с хорошим опытом, и вот пытаюсь плавно освоить Go.
И в качестве практики решил написать простейший проект.
У меня есть проекты работающие с самописным ядром в котором реализован достаточно функциональный роутер.
Вот я и хочу его реализовать в Го с таким же желательно функционалом как в приложении на PHP
В качестве сравнения прилагаю ссылки на два файла:
1. Мой старый роутер на PHP в проектах - https://pastebin.com/r8Hw7WJA
Убрал все лишее, сунул все в один файл без неймспейсов чисто для демонстрации.
2. И файлик с простейшим роутером на Go - https://pastebin.com/j0thEcBm
Там нативный https сервер без nginx-а. С автополучением сертификатов от Letsencrypt.
Сейчас у меня простейший роутер на switch, но хотел бы использовать регулярные выражения
с именнованными подмасками как в роутере на PHP.
Подскажите есть ли возможность в Го использовать регулярные выражения для проверки совпадения роута
и самое главное чтобы была возможность использовать именованные подмаски.
Чтобы я например из роута: https://sait.ru/api/v1/product/(?<id>[0-9]{1,})/update
мог потом получить переменную id и оперировать в логике с ней.
Не пинайте меня, мне нравится язык и я хочу его изучить.
Надеюсь что я смог правильно донести, то, что я хочу.
https://github.com/gorilla/mux
Регекспы медленные для такого
Даниил, подскажите. А нативными средствами Го можно как то реализовать? Или только с помощью сторонних пакетов? Я кстати забыл сразу это указать в своем сообщении.
Я согласен, что все это на нативе. Но каждую либу пишут по разному и с разным скилом. Кто то реализует мощный функционал дополнительный которого нет в нативе, но к этому всему и код не оч. оптимизирован может быть. Я сейчас погуглил про gorilla/mux, по отзывам вроде норм пакет, и многие его юзают, даже в гите сейчас посмотрел, многие крупные проекты заюзали этот пакет. Возможно мне не стоит заморачиваться и тоже стоит её заюзать. Посмотрю еще и скорее всего так и сделаю. Как я понял, штатными средствами Го я не заюзаю именованные подмаски в регулярках для матчига роутов?
От роутера зависит
Спасибо еще раз Вам, буду дальше изучать и пробовать пилить проект!
Очевидно, что можно. Раз пакеты написаны, то и самостоятельно можно написать🌚
Только в итоге получится то же самое и хуже протестированное и с меньшим функционалом возможно. 🤗
В большинстве случаев - да)
Обсуждают сегодня