
Denis
27.01.2017
19:11:02
Sqlx

mixa
27.01.2017
19:26:03
спасибо, это похоже то что надо:
rows, err = db.NamedQuery(SELECT * FROM person WHERE first_name=:fn, map[string]interface{}{"fn": "Bin"})

Alexey
27.01.2017
21:08:29
Привет,
А кто-нибудь умеет в go-micro?
micro api умеет как-нибудь автоматически входящий json пересылать на сервисы? Или там надо обязательно отдельную обёртку для этого писать?
В доке сказано:
RPC Handler: /[service]/[method]
Я туда шлю json, а мне в ответ 500 :-/

Google

Alexey
27.01.2017
21:12:34
% curl "http://localhost:8080/greeter/hello" -XPOST -H "Content-Type: application/json" -d '{"name":"john"}'
{"id":"go.micro.client","code":500,"detail":"none available","status":"Internal Server Error"}

Denis
27.01.2017
21:46:36
Он умеет и в пост и в json
Точнее не верно выразился
У него есть один эндпоинт на все запросы
А в какой сервис стучатся
Указывается в теле json
И метод там же

Roman
27.01.2017
23:07:37

Daniel
27.01.2017
23:10:08

Roman
27.01.2017
23:10:57
И на сам рест
Вот есть json-rpc. На него есть спека.

Daniel
27.01.2017
23:13:25
и на json rpc 2.0 тоже есть, и он полущ

Google

Roman
27.01.2017
23:14:11
http://www.jsonrpc.org/specification#batch

Alexey
28.01.2017
00:12:03

Oleh
28.01.2017
00:39:11
ахтунг
я в бд mysql кидаю "Ĉina Radio Internacia"
а получаю
тогда на sqlite тестил все было норм
юникод влючил
"?charset=utf8&parseTime=True&loc=Local" в конект стринге

Quet
28.01.2017
01:18:56
это канал про mysql? )

Oleh
28.01.2017
01:23:09
наверника есть те кто пользовался ним)

Alexey
28.01.2017
01:59:19
У него есть один эндпоинт на все запросы
А, всё, разобрался. API учитывает namespace.
Надо имя сервису задавать, например,
micro.Name("go.micro.api.greeter")
По дефолту namespace такой:
go.micro.api
И тогда работает:
curl "http://localhost:8080/greeter/hello" -XPOST -H "Content-Type: application/json" -d '{"name":"john"}'

Paul
28.01.2017
08:08:06

Denis
28.01.2017
08:51:55
> составление url для oauth2
Вся спека об этом

Phil
28.01.2017
08:56:48
юникод влючил
А база как создана? А данные в ней? А читаем или пишем? А тестовый код что дает?


Denis
28.01.2017
09:29:27
Еще раз, про ендпоинтс это ваш следующий вопрос, я давал ответ на первый, параметры запроса вполне себе часть url, в случае oauth2 - большая
По второму вопросу, Rfc не описывает как именно вы должны называть authorization endpoint, token endpoint, redirect endpoint, оно описывает как они должны себя вести и какие данные принимать, если сервер ваш, вы вольны называть их как угодно, есть соглашения, сейчас у разных провайдеров разнятся названия /auth и /authorization, /cb и /callback

Google

Phil
28.01.2017
09:33:00
Еще раз, про ендпоинтс это ваш следующий вопрос, я давал ответ на первый, параметры запроса вполне себе часть url, в случае oauth2 - большая
По второму вопросу, Rfc не описывает как именно вы должны называть authorization endpoint, token endpoint, redirect endpoint, оно описывает как они должны себя вести и какие данные принимать, если сервер ваш, вы вольны называть их как угодно, есть соглашения, сейчас у разных провайдеров разнятся названия /auth и /authorization, /cb и /callback
параметры запроса - часть url? это что за ненаучная ересь?

Denis
28.01.2017
09:36:43
:) приехали

Phil
28.01.2017
09:36:49
Так, а у OpenIDConnect там тоже нет соглашений? (спеку ещё не читал, не успел)
:) приехали
нет, не приехали. параметры в URL это даже не стандарт
:) приехали
Найдите мне кстати спеку по QUERY_STRING. Она есть, но я сходу даже не помню где.
Чуть ли не только на w3c, но не уверен

corpix
28.01.2017
09:41:03

Sheridan
28.01.2017
09:42:56
И оба с урн

Denis
28.01.2017
09:47:13
))

Phil
28.01.2017
09:58:22
Так. Чего накопал про oauth2. Если либа go-oauth2. Но у нее странные стораджи и 0 документации. Основной сторадж вообще эмбедед.
Есть osin, но он прямо токены хранит.
Есть к hydra SDK, развесистый и.. опять 0 документации

Denis
28.01.2017
10:39:52
https://github.com/gopherjs/vecty
Кто там фронтенд на гошке хотел писать?

Denis
28.01.2017
10:40:10
Vecty is a React-like library for GopherJS so that you can do frontend development in Go instead of writing JavaScript/HTML/CSS.
Там даже свой редакс есть
Нода вошла в бекенд, теперь го входит во фронтенд
Конечно компайлеры го в джс уже давно есть, но тут более законченное решение (по фичам)

Maxim
28.01.2017
10:46:26

Denis
28.01.2017
10:46:44
Что например ?

Maxim
28.01.2017
10:47:14

Denis
28.01.2017
10:49:11
гошный фреймворк для го для написания фронта со всеми вытекающими, для конкретных фич ссылка выше

Google

Admin
ERROR: S client not available

Denis
28.01.2017
10:50:52
Хотя по сорсам проекту год

Amir
28.01.2017
11:09:46

Maxim
28.01.2017
11:09:52
Кстати, уже не в первый раз вижу словосочетание idiomatic way. Что это?

Yura
28.01.2017
11:33:21
Это что-то вроде "так тут принято".
Т.е. если ты следуешь "idiomatic way", и все следуют "idiomatic way", то каждый читая код другого человека будет быстрее понимать, что код делает.

Denis
28.01.2017
11:45:22
Угу, ~ стандартный способ

Phil
28.01.2017
12:24:26
Чем-то мне fosite (oauth2 SDK) от hydra не нравится. Обосновать не могу
https://github.com/go-oauth2/oauth2 хранит впрямую токены. я нипонял

Berkus
28.01.2017
12:43:47

Yura
28.01.2017
12:44:07
Ну, стандартный - это объявленный стандартом де юре, а idiomatic - это скорее стандарт де факто.

Phil
28.01.2017
13:05:53
Так. Верните меня на землю. Что за херотень - даже dex зачем-то хочет иметь доступ к нормальным токенам. Что им мешает тупо хэш писать/читать?

Denis
28.01.2017
18:33:38
https://github.com/aarzilli/gdlv
Кто-нибудь юзал ?
По видео выглядит очень круто


Slach
29.01.2017
08:44:32
всем привет,
кто нибудь может меня платно проконсультировать и поревьювить мой код более дотошно?
ну или просто объясните пожалуйста
насколько плохо объявлять некий глобальный контекст при обработке http handlers на golang??
не middleware а именно контект
в общем мне надо чтобы несколько горутин писали в один файл в append режиме
и при достижении глобального (g.writed_rows % g.chunk_size) == 0
происходил flush файла и закрытие дескриптора
и создание друого файла (открытие в append режиме)
в качестве фреймворка использую https://github.com/gocraft/web (первое что попалось на глаза когда начал гуглить golang lightweight web framework)
пытаюсь сделать как то так
type MyStruct struct {
sync.RWMutex
// дальше много полей всякие file handlers и map
tsv_writer *csv.Writer
tsv_file *os.File
tsv_file_name string
writed_rows uint
chunk_size uint
}
а в обработчике
func (g *MyStruct) Collect(rw web.ResponseWriter, req *web.Request) {
}
делаю как то так
https://play.golang.org/p/StfrROogbk
пытаюсь юзать
g.Lock и g.Unlock
при записи в g
и в тех местах где хочется тоьлко читать делаю g.RLock g.RUnlock
а у меня пока получается
что в бенчмарке
func Benchmark_Collect(b *testing.B) {
g := NewMyStruct()
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) {
req := NewTestRequest()
rw := web.ResponseWriter(testResponseWriter{})
for pb.Next() {
g.Collect(rw, &req)
}
})
}
переименование файла и открытие закрытие пытается делаться паралелльно =(


Roman
29.01.2017
09:21:07

Phil
29.01.2017
09:36:35
АААААААААААААААА

Subbotin
29.01.2017
10:12:48
хей браза.

Daniel
29.01.2017
10:13:41
для них есть достаточно полезное применение

Google

Daniel
29.01.2017
10:13:49
но в книге об этом не пишут...

Subbotin
29.01.2017
10:14:23
скажите мне. вот надо мне заливать и сливать файлики с сервера (мелкие и мало). клиент и сервер оба мои. сервер у меня уже предоставляет рест апи через фреймворк echo. как лучше сделать?
заливать через форм дата или просто пут гет и бинарный блоб с содержимым файла?
мне кажется второй вариант симпатичнее

Daniel
29.01.2017
10:17:17
второй типа оптимальнее
первый типа более отлаживаемый и расширяемый
на самом деле - строго пох

Roman
29.01.2017
10:22:09

Slach
29.01.2017
10:42:19
PUT и GET в самый раз

Quet
29.01.2017
10:51:07