170 похожих чатов

Ребята, всех приветствую! Прошу подсказать мне и помочь переписать роутер на

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 и оперировать в логике с ней.

Не пинайте меня, мне нравится язык и я хочу его изучить.

Надеюсь что я смог правильно донести, то, что я хочу.

9 ответов

19 просмотров

https://github.com/gorilla/mux

Регекспы медленные для такого

Юрий-Вельмесов Автор вопроса
Daniil Korekovcev
https://github.com/gorilla/mux

Даниил, подскажите. А нативными средствами Го можно как то реализовать? Или только с помощью сторонних пакетов? Я кстати забыл сразу это указать в своем сообщении.

Юрий-Вельмесов Автор вопроса

Я согласен, что все это на нативе. Но каждую либу пишут по разному и с разным скилом. Кто то реализует мощный функционал дополнительный которого нет в нативе, но к этому всему и код не оч. оптимизирован может быть. Я сейчас погуглил про gorilla/mux, по отзывам вроде норм пакет, и многие его юзают, даже в гите сейчас посмотрел, многие крупные проекты заюзали этот пакет. Возможно мне не стоит заморачиваться и тоже стоит её заюзать. Посмотрю еще и скорее всего так и сделаю. Как я понял, штатными средствами Го я не заюзаю именованные подмаски в регулярках для матчига роутов?

Юрий-Вельмесов Автор вопроса

Спасибо еще раз Вам, буду дальше изучать и пробовать пилить проект!

Юрий Вельмесов
Даниил, подскажите. А нативными средствами Го можн...

Очевидно, что можно. Раз пакеты написаны, то и самостоятельно можно написать🌚

Vladislav Semyachkin
Очевидно, что можно. Раз пакеты написаны, то и сам...

Только в итоге получится то же самое и хуже протестированное и с меньшим функционалом возможно. 🤗

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта