Size: a a a

2021 May 26

VK

Vadik Karmanov in Go-go!
перед проверкой чекайте resp != nil
источник

VK

Vadik Karmanov in Go-go!
если он nil, а вы обращаетесь к его полю, может ошибка вылетать
источник

N

Nikita in Go-go!
да , ок но он не nil
источник

VK

Vadik Karmanov in Go-go!
ну у тебя в ответе ожидается json, а пришел не он
источник

OK

O K in Go-go!
Hii
источник

m

milkiweed in Go-go!
всем привет! у меня есть ендпоинт который должен принять «порцию» каких-то сообщений и отправить их в ELK.

У меня есть 2 вопроса по улучшению моего флоу, на данный момент он такой:
1) Сервер принимает файл, пишет его в буфер и закрывает.
2) Затем читает байты из буфера и пишет их в слайс моих структур
3) После этого происходит этап отправки логов в кафку.
Я начинаю свой слайс структур по одному элементу превращать обратно в байты и слать в кафку


Вопросы:
1) есть ли разница в том, принимаю я файл с жсоном внутри (имеется ввиду контент тайп для файла) или сам жсон проще отправлять? как это может отразиться на производительности?
2) как можно улучшить флоу который я описал выше? мне кажется это немного нелогично парсить в слайс структур из байтов, а потом обратно в байты чтоб отправить

надеюсь более опытные разработчики смогут поделиться советами) спасибо
источник

VY

Vladislav Yarmak in Go-go!
1 - а чем отличается отправка файла с жсоном внутри от просто отправки жсона? имеется в виду, что в первом случае какой-то multipart/form-data используется, где жсон-файл просто один из членов?
2 - а что на входе и что на выходе? может и не парсить ничего?
источник

VY

Vladislav Yarmak in Go-go!
окей, вопрос-то в чём?
источник

VY

Vladislav Yarmak in Go-go!
и не крашится, а выходит по log.Fatal
источник

m

milkiweed in Go-go!
#1. по-сути отличий ноль. я могу принять чистый жсон вида:

[{“foo”: “bar”}, …]

а могу эту же структуру отправить файлом. мне интересно есть ли тут явные различия в производительности


#2. На вход я должен получить список из примера выше и отправить его в кафку. В ответ ничего не ожидается.

парсинг я прикрутил сюда по той причине что мне нужно по 1 элементу отправлять в кафку, а не сразу всю порцию.

мб можно как-то читать жсон в потоке, вынимать по 1 элементу и сразу их в кафку закидывать

вместо парсинга в слайс структур
источник

VY

Vladislav Yarmak in Go-go!
понятно. можно читать жсон в потоке потоковым парсером, но как по мне это немного муторно

вместо этого проще принимать на входе запрос, тело которого состоит из JSON-ов, разделённых новой строкой (как тут: http://ndjson.org/ )
источник

VY

Vladislav Yarmak in Go-go!
и по строкам просто слать в кафку без парсинга
источник

VY

Vladislav Yarmak in Go-go!
если, конечно, вход подаёт доверенный источник и валидация не требуется
источник

VY

Vladislav Yarmak in Go-go!
если приложение с данными в структурах никак не работает, то парсить особо незачем
источник

N

Nikita in Go-go!
что то не так тогда делаю с маршалом
источник

VY

Vladislav Yarmak in Go-go!
а там точно должен быть json?
источник

VY

Vladislav Yarmak in Go-go!
в теле ответа пятисотой ошибки
источник

N

Nikita in Go-go!
да , bodу должен маршалит до структуры
источник

VY

Vladislav Yarmak in Go-go!
выведите тогда то, что поступает на вход unmarshal-у и посмотрите, что не так с тем json-ом
источник

ДЛ

Дмитрий Лысенко... in Go-go!
перед error скобки { нет. Может буфер выводится с первого байта?
источник