Size: a a a

2020 June 19

МП

Мимо Проходящий... in Go-go!
Но интерроп с го качественный - gopher-lua хороша
источник

AP

Alexey Palazhchenko in Go-go!
На будущее рекомендую starlark-go
источник

AP

Alexey Palazhchenko in Go-go!
(продолжаю рекомендовать)
источник

МП

Мимо Проходящий... in Go-go!
Это про питон? Спасибо, посмотрим
источник

t

traestan in Go-go!
Подскажите плз, В проекте есть 2 транспорта rest-api и gql. Нужно чтобы эндроинты по gql были под авторизацией а по rest-api нет.
источник

S

Slach in Go-go!
Ребятушки, объясните мне дурачку неразумному

вот есть у меня json
с изменяющейся структурой, вариант 1
[
{ "t":"123213213", "f": 123 },
{ "t":"123213213", "f": 123.25 },
{ "t":"123213213", "f": "12313123131231231312" }
]

вариант 2
[
 { "t":"123213213",  "f": [ ["test1","12323"], ["test2","0"] ] },
 { "t":"123213214",  "f": [ ["test1","12323"], ["test2","0"] ] }
]

пытаюсь я его json.Unmarshal() сделать
через слайс []map[string]interface{}
и дальше делать type assertion
типа
for _, d := range parsedJSON {
 for k, v := range d {
   switch t := v.(type) {
  /* и вот тут у меня возникает засада, потому что я не до конца понимаю к какому типу мне кастовать полученный interface{} для вариант2 ? слайс слайсов по строке ? [][]string ? а как это вообще на уровне самого модуля json из стандартной библиотеки работает? как он сам то кастует это все дело? */
   }
 }
}
источник

S

Slach in Go-go!
traestan
Подскажите плз, В проекте есть 2 транспорта rest-api и gql. Нужно чтобы эндроинты по gql были под авторизацией а по rest-api нет.
ну добавь middleware с авторизацией и проверяй в нем префикс в url
источник

КК

Кирилл Кудрявцев... in Go-go!
привет, можете покидать проекты api серверов на го с github'а. посмотреть архитектуру кода, реализацию, да и вообще интересные с вашей точки зрения
источник

t

traestan in Go-go!
Slach
ну добавь middleware с авторизацией и проверяй в нем префикс в url
я думал об этом но какой то варинт странный
источник

t

traestan in Go-go!
а если нужно будет добивить 3-ий транспорт grpc например
источник

S

Slach in Go-go!
traestan
я думал об этом но какой то варинт странный
ну смотри фреймворки в которых middleware можно подвесить только на заданные хендлеры
источник

ВС

Владимир Столяров... in Go-go!
Slach
Ребятушки, объясните мне дурачку неразумному

вот есть у меня json
с изменяющейся структурой, вариант 1
[
{ "t":"123213213", "f": 123 },
{ "t":"123213213", "f": 123.25 },
{ "t":"123213213", "f": "12313123131231231312" }
]

вариант 2
[
 { "t":"123213213",  "f": [ ["test1","12323"], ["test2","0"] ] },
 { "t":"123213214",  "f": [ ["test1","12323"], ["test2","0"] ] }
]

пытаюсь я его json.Unmarshal() сделать
через слайс []map[string]interface{}
и дальше делать type assertion
типа
for _, d := range parsedJSON {
 for k, v := range d {
   switch t := v.(type) {
  /* и вот тут у меня возникает засада, потому что я не до конца понимаю к какому типу мне кастовать полученный interface{} для вариант2 ? слайс слайсов по строке ? [][]string ? а как это вообще на уровне самого модуля json из стандартной библиотеки работает? как он сам то кастует это все дело? */
   }
 }
}
При такой схеме внутри interface{} прячутся только:
map[string]interface{} - если там был объект
[]interface{} - если массив
string
float64/json.Number (если была настройка UseNumber)
bool
nil
источник

S

Slach in Go-go!
Владимир Столяров
При такой схеме внутри interface{} прячутся только:
map[string]interface{} - если там был объект
[]interface{} - если массив
string
float64/json.Number (если была настройка UseNumber)
bool
nil
смотрите, у меня  структура json укладывается []map[string]interface{}
но потом interface может быть либо скалярным разных типов (int, string, float)
либо комплексным массивом строк [ {"t":"1231233","f":[["test1","12331"],["test2","0"]] } ]

я просто хочу понять
будет ли работать конструкция
var arrayOfTuples [][]string
switch i := v.(type) {
  case [][]string:
    arrayOfTuples = i
 default:
     return nil, fmt.Errorf("unable to parse data section type=%T in response json: %s", v, body)
}

на первый взгляд вроде будет
но у меня вопрос, а как так написан json и почему он такой умный? как он комплексные builtin типы данных гошные выводит из json ?
источник

ВС

Владимир Столяров... in Go-go!
Нет, не будет, потому что вы получите []interface{}
источник

S

Slach in Go-go!
Владимир Столяров
Нет, не будет, потому что вы получите []interface{}
где? в v.(type) ?
источник

ВС

Владимир Столяров... in Go-go!
да
источник

S

Slach in Go-go!
Владимир Столяров
Нет, не будет, потому что вы получите []interface{}
а как мне тогда кастануть JSON массив массивов из []interface{} в [][]string ?
источник

ВС

Владимир Столяров... in Go-go!
тут проще будет воспользоваться https://pkg.go.dev/github.com/json-iterator/go?tab=doc или https://github.com/tidwall/gjson
источник

ЛА

Локоть Анатолий... in Go-go!
Юрий Вельмесов
Подскажите плиз, как мне в подключаемы темплейт отправить только определенную переменную?
Вот сейчас в main шаблоне я подключаю head шаблон и с помощью "." (точки) я передаю в head все переменные.
<head>{{template "head" .}}</head>

Но я например хочу отправить туда только одну, например тайтл вот так:
<head>{{template "head" .Title}}</head>

Как мне добиться такого?
А в чем вопрос? Передавайте так как передаёте. В самом шаблоне титл доступен будет как .
источник

ЛА

Локоть Анатолий... in Go-go!
Юрий Вельмесов
Всех приветствую!
Кто подскажет как правильно указать пути к макетам на несколько директорий выше?
Сейчас мне ругается на эти пути.
Если же в этой же директория папка с макетами, то всё норм.
Вот я пытаюсь так:
templates, err := template.ParseFiles(
 "/../../../frontend/layout/home/index.html",
 "/../../../frontend/layout/home/head.html",
)
У вас пути начинаются со слеша, значит они абсолютные. А дальше .. - куда выше корня файловой системы хотите попасть? Скорее всего пути должны начинаться с ./ (Текущей папки)
источник