Billyfbrain
vim+SQLUtilities
Dmitry
Что лучше использовать для чтения Body запроса: ioutil.ReadAll() или (b *Buffer) ReadFrom() из bytes?
Altay unstppbl
Что-то мне подсказывает что они делают разные вещи
Anonymous
Здравствуйте. Подскажите orm для go максимально по синтаксису похожую на peewee orm из python
arkady
Aleksandr
Pawel
Пяток это много кстати
Oleg
кто как в REST API PATCH делает?
Oleg
или частичный патч?
Aleksandr
конкретизируй
Oleg
вот у тебя есть REST PATCH, который принимает данные для частичного апдейта сущности. Ты его анализируешь и строишь уже к примеру апдейты к базе. Кто как делает это?
Aleksandr
я думаю это зависит от db-слоя. если ормка, то апдейтишь поля у сущности, дальше орм сама сохрпаняет. если голый sql, то создаешь update из пришедших полей.
Это ты хочешь знать?
Oleg
есть варианты jsonpath2sql?
Oleg
gorm кстати норм или что еще посоветуете?
Oleg
Какой фреймворк посоветуете для написания апи, вот прям чтобы потом можно было и в продакшене юзать? Я пока на биго остановился, пользуется им кто-нибудь?
.
Можно и стандартный использовать
Aleksandr
обсуждение фреймворков здесь близко к нулю, потому что ими никто не пользуется
.
Каждый раз когда заходят такие разговоры, понимаю, насколько хорошо что в Го есть достаточно много стандартных хороших либ на все случаи жизни
Oleg
Просто писать апи с тем же гориллой? вроде довольно удобен, но не шибко быстрый, а net/http слышал что не особо много в проде работает, или не правда?
Мерль
Yehor
Slava
Slava
про net/http не в проде - смешно =) только он везде и в проде
Kirill
Люблю gin, но это лично мое мнение, не подкреплённое никакими измерениями
Pawel
go-chi
+1 только это роутер, не фреймворк
Roman
Roman
Kirill
Kirill
он от этого менее стабильным не стал
Slava
rglitchard
подскажите пожалуйста
проект лежит по пути /Users/milkiweed/go/src/bolsche
в директории 2 файла , все начинаются со строк package bolsche
прописывал команды go install bolsche, все завершалось без ошибок
но когда ввожу go run и любой файл из моей директории - получаю >
go run: cannot run non-main package
указывал GOPATH, проект уже туда кинул и следовал советам, которые удалось нагуглить; ничего толкового не нашел
Slava
в го executable только main пакеты
Slava
к чему тогда ваш вопрос?
Slava
Slava
всё ровно наоборот
Slava
потому что он 1) удобнее 2) достаточно быстр для любых задач 3) более функционален 4) поддерживаешься более широким наборот библиотек 5) более стабилен
Slava
можно и дальше продложать, вроде поддерживает http2 итд
Roman
Slava
какое?
Roman
какое?
Достаточно быстр для любых задач
Roman
Он либо для любых, либо достаточно быстр :)
Slava
хорошо, 99 процентов любых задач
Dmitri
Dmitri
Dmitri
Anonymous
@CheshireKot я не помню ты или не ты говорил, но qml разве имеет зависимость на js ? К тому же сразу на v8?
Dmitri
Dmitri
когда ты биндишь что-то из основного приложения, допустим, на C++, в QML-интерфейс, создается соответствующий js-объект, с которым твой интерфейс и работает
Oleg
Никак. Не работает оно
а чего так? хочу с клинта слать дельту по стандарту https://tools.ietf.org/html/rfc7386. как на сервере лучше всего с этим жить?
Oleg
Или с https://tools.ietf.org/html/rfc6902
Oleg
иначе придется слать на сервер всю сущность и на сервере вычислять дельту с вариантами 1) запоминать все версии сущностей, вычислять дельту по сравнению с нужной версией 2) придумывать блокировки на время редактирования 3) не придумывать блокировки и слать клиента лесом если он пытается изменить устаревшую версию.
Nazar
как можно преобразовать строку типа 20180805213000 +0300 в unix timestamp
heavycharged
почитайте доку к time пакету
heavycharged
там есть Parse и формат по которому парсить
Roman
heavycharged
в вашем случае parse будет что-то вроде time.Parse("20060102150405 -0700", yourVar), а затем time.Unix()
V
руками 🙂
heavycharged
А в чем проблемы то с PATCH?
heavycharged
Можно определить структуру, в неё анмаршалить JSON, и написать метод Merge(entity *YourEntity) в которой сравнить все поля, и по очередно обновить, либо рефлексией.
heavycharged
можно кодогенерацией решить такой кейс, если проблема все таки не в http verbs а в лени все это описывать
Oleg
V
put заменяет существующую сущность, patch меняет отдельные поля, не?
heavycharged
ну даже если дельту, нужно как-то связывать значение новый старый, например по ID, а дальше кодогенерацией создать if newEntity.Name != "" && newEntity.Name != oldEntity.Name { // добавляем в update значение }
heavycharged
а в чем вообще проблема обновить всю строку?
heavycharged
если уж раз с базой работаете?
heavycharged
https://github.com/imdario/mergo
heavycharged
вот структуры мерджить
heavycharged
https://github.com/evanphx/json-patch
heavycharged
а вот и json patch, но я думаю вы это видели