Size: a a a

2020 March 13

D

Demian in Go-go!
Евгений Омельченко
REST это про то какой либой вы делаете обработку запросов, а про архитектуру самого апи
Я понимаю
источник

/

/dev/null in Go-go!
я думаю вы ищете это:
https://github.com/go-kit/kit
источник

YM

Yuriy Musienko in Go-go!
Есть map типа map[string][2]string, в массиве хранится само значение, и вторым элементом его тип. (апи возвращает только строчные значения, и отдельным филдом приходит тип, поэтому я конвертнул в мап такого вида)
Есть ли какой-то способ заанмаршалить мап в структуру, которая уже ожидает нужные типы (флоаты, инты и тд)? Или прийдется каждый филд вручную преобразовывать? Чего очень не хотелось бы, т.к 200 филдов в структуре )
источник

YM

Yuriy Musienko in Go-go!
Подозреваю что каждый элемент из мапа придется руками преобразовывать и сэтить как филд структур напрмую ((
источник

DP

Daniel Podolsky in Go-go!
я бы вместо [2]string использовал бы struct

а сам вопрос не ясен
источник

YM

Yuriy Musienko in Go-go!
Мне пришел респонс в котором все значения - строки, и рядом в джсоне лежит филд с типом этого значения (которым оно должно являться)
Моя цель - смапить этот респонс в простой json с правильными типами -

Было

[{
 Name: "Earnings"
 Value: "2.25",
 Type: "Float"
}]

Стало

{
 Earnings:  2.25,...
}


Я сделал из этого мап (пока в качестве значений - массив со значением и типом)

И дальше мне необходимо скормить этот мап в struct

Есть варианты решения?
источник

YM

Yuriy Musienko in Go-go!
С мапом вряд ли выйдет т.к максимум к чему я могу придти это map[string]interface{} и анмаршал работать не будет. Поэтому вижу пока один вариант - тупо каждое поле преобразовывать в нужный тип и сэтить напрямую в struct
источник

DP

Daniel Podolsky in Go-go!
так это
источник

VM

Vladislav Milenin in Go-go!
какая-то странная задача)
вы прокси/gateway пишите?
источник

DP

Daniel Podolsky in Go-go!
описываем элемен массива как структуру
источник

YM

Yuriy Musienko in Go-go!
нет, ETL система, пытаюсь просто данные привести в нормальный вид, а не то в каком виде оно с внешних апих приходит )
источник

DP

Daniel Podolsky in Go-go!
структуре приписываем метод Unmarshal
источник

DP

Daniel Podolsky in Go-go!
Unmarshal этот делает сначала анмаршалинг в структуру из трех строк, потом из полученных строк формирует результирующую структуру
источник

DP

Daniel Podolsky in Go-go!
и все работает
источник

DP

Daniel Podolsky in Go-go!
Unmarshal должен бфть вот такой: https://golang.org/pkg/encoding/json/#Unmarshaler
источник

DP

Daniel Podolsky in Go-go!
UnmarshalJSON([]byte) error
источник

YM

Yuriy Musienko in Go-go!
опа, это походу то что я искал)
источник

YM

Yuriy Musienko in Go-go!
Спасибо)
источник

DP

Daniel Podolsky in Go-go!
да не за что
источник

D

Demian in Go-go!
/dev/null
я думаю вы ищете это:
https://github.com/go-kit/kit
Это выглядит интереснее, спасибо
источник