Oleksii
Между F() и f() есть разница
Nikita
я уже понял, я про то, что есть другой "проект" там приходилось экспортировать, а теперь выясняется, что это не нужно
Oleksii
Все примеры, что ты скидывал, в package main
Oleksii
И все окей :)
Oleksii
Возможно, ты что-то не так делал
Alexander
И тут нам прилетает sql-иньекция
А как надо правильно делать?
Anonymous
А как надо правильно делать?
Предположу: Цикл for по мапе, делающий insert для каждого значения. Обернуть красиво в одну транзакцию - и всё будет ок.
Alexander
5 полей - 5 инсертов???
Anonymous
5 полей - 5 инсертов???
Хм... Не совсем понял первоначальный вопрос, сейчас догнал.
Alexander
Кстати, вышеописанным методом инъекция не прошла. Так что оставлю его пока.
Anonymous
Кстати, вышеописанным методом инъекция не прошла. Так что оставлю его пока.
А почему данные в мапе? Логично юзать структуру же.
Alexander
А почему данные в мапе? Логично юзать структуру же.
Незнаю. Попробую переписать на структуру. Разница будет?
Anonymous
Незнаю. Попробую переписать на структуру. Разница будет?
Проще рефакторить. В структуре сразу видно поля, а в мапу можно засунуть что угодно.
Alexander
Наверное и работать будет быстрее
Anonymous
И с помощью всяких ORM можно будет красиво вставлять сразу целиком записи
Alexander
не люблю я орм. Описать там джоины - сума сойдёшь
Alexey
JOIN'ы можно и на SQL'е писать
Alexey
Вообще, ORM'ы, как правило, не забирают возможность использовать SQL
Alexey
Но убирают необходимость делать повторяющиеся действия руками каждый раз, типа rows.Scan(…правильное количество аргументов в нужном порядке…) или defer rows.Close()
Stepan
Orm есть хорошо
Никита
Orm есть хорошо
Полностью согласен
Dmitriy
Все доброго времени суток. У меня вопрос следующего характера. Возникла проблема с отпрвкой data.json на web api. В data я передаю user пароль и дальше как бы получаю всю нужную информацию, на питоне у меня все четка работает с urllib, на go отдает ошибку о неправильной auth-id или пароле пользователя. Возможно я что то делаю не так. package main import ( "fmt" "net/http" "bytes" "io/ioutil" "encoding/json" ) type som struct{ Aut int json:"auth-id" P string json:"auth-password" RO int json:"rows-per-page" } func main(){ url := "https://api.cloudns.net/dns/get-pages-count.json" fmt.Println("URL:>", url) data := som{123,"password",10} jsonStr,err := json.Marshal(data) req, err := http.Post(url,"application/json", bytes.NewBuffer(jsonStr)) if err != nil { panic(err) } defer req.Body.Close() fmt.Println("response Status:", req.Status) fmt.Println("response Headers:", req.Header) body, _ := ioutil.ReadAll(req.Body) fmt.Println("response Body:", string(body)) }
Anonymous
какой json посылается? надо вывести и все станет ясно
Dmitriy
{"auth-id":123,"auth-password":"password","rows-per-page":10}
engelbart
После rows запятой нет
engelbart
Ой, и не могло помочь
engelbart
Я глупость сказал
Dmitriy
Ну я попробовал... малоли;)
Anton
а покажи код на ру?
Dmitriy
def listPageClouDNS(): data = {"auth-id" : authId, "auth-password" : authPassword, "rows-per-page" : 100, } enc_data = urllib.parse.urlencode(data).encode('utf-8') page = urllib.request.urlopen("https://api.cloudns.net/dns/get-pages-count.json", enc_data) x = eval(page.read()) s = json.dumps(x) #print(x['status'], '! ', x['statusDescription'], sep='') return(s)
Anton
urlencode != json в post body
Anton
и код бы обрамлять в трех "`"
Ilya
x = eval(page.read())
Anton
из раздела: не знаешь как помочь - дое*ись до текста)
Ilya
Б - безопасность
Anton
в варианте на ру ты получаешь что-то типа: GET: https://api.cloudns.net/dns/get-pages-count.json?auth-id=0&auth-password=password&rows-per-page=10 а в варианте на го у тебя: POST: https://api.cloudns.net/dns/get-pages-count.json где ты в request body кидаешь свой json
Anton
смотри в сторону https://golang.org/pkg/net/url/#Values.Encode
Dmitrii
Dmitryi type som struct{ Aut int `"json":"auth-id"` P string `"json":"auth-password"` RO int `"json":"rows-per-page"` } Так пробовали ?
Anton
Спасибо, это я и пытался понять. Вы подтвердили мои догадки. Я просто не был уверен, знаний не хватало.
https://play.golang.org/p/nzQqp7wBVh мне кажется ты что-то такое ищешь (err только не теряй.. я там поленился их обрабатывать)
Anton
и не пугайся, в песочнице сам запрос nil возвращает, потому что там http наружку делать нельзя
Dmitriy / დიმიტრი
а может кто порекомендует хорошую тулзу для стресс тестирования? не обязательно на Go, но обязательна поддержка websocket протокола
Dmitriy / დიმიტრი
artillery.io уже пробовал, но там вообще почти нифига нет
Ivan
Yandex.Tank?
Anton
gatling
Vladimir
yandex.tank, pandora, gatling, jmeter, vegeta
Vladimir
еще кто-то был
Vladimir
я все время забываю
Anton
Apache benchmark
Anton
Простите, оно не факт что в веб сокеты умеет. Я вопросы читать не умею
Alex
Привет народ, кто может мой код на гитхабе глянуть. Пишу недавно, хочется услышать критику и может где-что подсказать как лучше сделать
Aleksandr
ссылку кидай - кто-то обязательно глянет
Мерль
#подкаст http://golangshow.com/online/
Nikita
#подкаст http://golangshow.com/online/
без всяких soundclound)
Yura
Dratuti
Valentin
я бы не отказался от ссылки на саундклауд
Valentin
а, тунец есть -)
Anonymous
Вопрос тем кто использует GIN // Upload the file to specific dst. Имеется ввиду директория для сохранения?
Anonymous
Nikolay
Да
Anonymous
Да
чет не сохраняет...
Nikolay
Ошибки пишет?
Nikolay
Путь в каком виде указал?
Anonymous
Путь в каком виде указал?
разобрался... почему то не может использовать относительные пути
Anonymous
Подскажите пожалуйста, как еще можно расширения файла убрать Например имеем name.zip как привести его к виду name
Anonymous
Интересно, что будет, если кинуть гуглу PR с добавлением функции получения имени файла. Возьмут или нет?
Slava
ммм
Slava
но зачем?
Anonymous
Еще один немного странный вопрос, как вы ищете проекты на github, например хочу посмотреть на репозитории людей которые пишут на go
Diasko
Подскажите может кто нибудь встречал для го плагены на подобии Yii2-debug и laravel-debugbar
Diasko
а что они делают? Можешь кратко рассказать?
Выводят логи в бразуер логи, какой запрос, какие параметры, sql запросы и т.д