@proGO

Страница 1148 из 1674
Kirill
15.01.2018
16:32:55
;)

Demuz
15.01.2018
16:32:58
Если ваш фреймворк не делает проще чем ирис, это не повод сразу жаловаться на шутку.

Ааа, тогда извините.

это тоже шутка, вы что как маленький начинаете?
Ретурн это как я понимаю, финальная точка будет?

Google
Kirill
15.01.2018
16:33:39
не, шутка с "воруйте и всё будет хорошо" всегда от меня встретит реакцию в виде шутки с /voteban

Ретурн это как я понимаю, финальная точка будет?
да, это как раз сделано для тех случаев, когда отдать json - финальная точка хендлера

Demuz
15.01.2018
16:34:34
да, это как раз сделано для тех случаев, когда отдать json - финальная точка хендлера
Ну незнаю. Философия ирис помоему так не делает. Никогда там ретурн в ендпоинте не писал.

Kirill
15.01.2018
16:35:00
чтобы было без if a == b { ctx.JSON(orders) return } ctx.Forbidden()

хотя это слишком простой пример

Arch
15.01.2018
16:35:42
Народ, приветствую! Кто-то работал с gorilla/websocket? Если закрыть соединение из одной горутины, то что произойдет, если его попытаться закрыть из другой?

Demuz
15.01.2018
16:36:41
Народ, приветствую! Кто-то работал с gorilla/websocket? Если закрыть соединение из одной горутины, то что произойдет, если его попытаться закрыть из другой?
Ниче не произойдет. Закроется соединение, если инстанс WS был глобальным. Э, стойте. Я про iris веб сокеты.

Demuz
15.01.2018
16:37:33
Вроде ничего не происходит. Бинарник не взрывается как минимум.

Arch
15.01.2018
16:37:44
Как проверить что оно закрыто?

Kirill
15.01.2018
16:38:00
по идее, может вернуть syscall.EINVAL или *net.OpError

Arch
15.01.2018
16:38:03
Или можно закрывать хоть десять раз?

Google
Demuz
15.01.2018
16:38:43
Как проверить что оно закрыто?
Вывести список соединений или это соединение попробовать получить. Обычно сокеты ничего не возвращают в ответ если нет соединения.

Kirill
15.01.2018
16:39:07
Demuz
15.01.2018
16:39:23


Arch
15.01.2018
16:40:23
Ну можно как вариант еще isWritable проверить

Demuz
15.01.2018
16:40:46
@kirilldanshin короче попробовал ввести несколько эндпоинтных комманд в ирисе. сработала только последняя. типа ctx.JSON() и потом ctx.Writef(). )))

Arch
15.01.2018
16:41:19
А ну вроде не злиться, если два раза закрыть одно соединение, ну и ладно

Demuz
15.01.2018
16:42:12
А ну вроде не злиться, если два раза закрыть одно соединение, ну и ладно
А как так может получиться, что два раза попытаться одно соединение закрыть? Оно разве не при отключении клиента закрывается?

Arch
15.01.2018
16:44:18
А как так может получиться, что два раза попытаться одно соединение закрыть? Оно разве не при отключении клиента закрывается?
У меня при коннекте клиента по WS стартует две горутины, в одной происходит чтение, во второй запись, так вот после закрытия каналов извне в этих горутинах проиходит выход из селекта и срабатывает defer с ws.Close() а так как горутин - две, то закрытие происходит два раза

Допустим при мульти коннекте пользователя, его старое соединение должно быть закрыто, мы принудительно закрываем каналы на чтение и запись и вуаля, происходит закрытие ws соединения

Я использую gorilla/websocket там вроде нет метода IiConnected

Demuz
15.01.2018
16:54:35




Эт я так, делюсь просто. ?

anton
15.01.2018
16:58:17
винду активируй

Demuz
15.01.2018
16:58:37
Не горит. Мне важней проект. Надпись не мешает.

В принципе конструктор под что угодно можно юзать. Под такси например, или магаз. Бэк на го конечно.

Заказы в виде пуш ап приходят всем владельцам данного объекта.

Alexander
15.01.2018
18:06:59
активация win смущает)

глобально ordrs передавать

Google
Alexander
15.01.2018
18:08:16
не логично)

хотя, если это типо dictionary то норм

а можно в iris при сериализации убирать поля по опр логике?

Demuz
15.01.2018
18:09:27
глобально ordrs передавать
В каком смысле глобально? ???

Я его не передаю глобально. Это пример синтаксиса.

Alexander
15.01.2018
18:09:45
В каком смысле глобально? ???
они всегда в памяти

Alexander
15.01.2018
18:09:58
пример

Demuz
15.01.2018
18:10:03
Можно и указать справа обычные поля жсон, разницы нет.

пример
Я имею играю. Сами поищите.

?

они всегда в памяти
Эти? Да. Которые реально юзаю, нет.

Demuz
15.01.2018
18:11:24
Он же про простоту возврата жсон спрашивал, я ему пример показывал.

Alexander
15.01.2018
18:11:52
всм вот про что я, у меня есть модель пользователя, и в одном роуте я хочу получать себя со всеми полями, а в другом список друзей но только с определенными

но модель user одна

можно в iris фильтровать поля модели при сериализации

?

без перекопировывагия в мапку

всм, это как бы и способ, но неудобно) появятся новые поля и код надо менять везде

Demuz
15.01.2018
18:15:20
Насчет фильтра не интересовался. Но там выборка из базы делается череж джинжу орм к примеру, через Scan вытаскиваются только определенные поля. и этот же инстанс возвращают, таким образом и возвращают только определенные поля. Другую логику даже не интересовался. Честно.

Google
Demuz
15.01.2018
18:16:28
Было бы здово вобще не возвращать поля, если они нул к примеру. конкретно мне бы такое подошло.

Alexander
15.01.2018
18:17:14
я просто finalizer описал у себя в движке, можно в тегах указать группу и при финализации указывать необходимую

сейчас пример покажу

Demuz
15.01.2018
18:17:54
я просто finalizer описал у себя в движке, можно в тегах указать группу и при финализации указывать необходимую
Вот это тема. А где тот парень вобще? Который другой свой фреймворк показал?

Admin
ERROR: S client not available

Alexander
15.01.2018
18:18:41
type PhoneNumber struct{ E164 string `json:"e164"` } type User struct { ID uint64 `json:"id"` Phone *PhoneNumber `json:"phone,omitempty" group:"private" export:"E164"` CreatedAt time.Time `json:"created_at" group:"private"` UpdatedAt time.Time `json:"update_at" group:"private" exclude:"equal:CreatedAt"` }

тут вот есть group

func main() { // Create new JUST application a := just.New() // replace def serializers finalizer.ReplaceSerializers(a) a.GET("/{group:enum(public,private)}", func(c *just.Context) just.IResponse { now := time.Now() return c.Serializer(). Response(200, finalizer.Input( &User{ ID: 1, Phone: &PhoneNumber{ E164: "+79000000000", }, CreatedAt: now, UpdatedAt: now, }, c.ParamDef("group", "public"), )) }) a.Run(":80") }

Result GET request http://localhost/public { "id": 1 } Result GET request http://localhost/private { "id": 1, "phone": "+79000000000", "created_at": "2017-12-11T22:23:36.709146+05:00" }

вот как то так

сделал пока топорно, думаю сделать одним тегом с параметрами

как считаете норм?

эта штука умеет эеспортировать поля модели по переданной группе, а так же выделять из объекта модели необходимый ключ, в примере из объекта PhoneNumber экспортируется поле E164 при сериализации User

Demuz
15.01.2018
18:22:43
Alexander
15.01.2018
18:22:46
так же в примере есть условие исключения : exclude:"equal:CreatedAt"`

то есть поле UpdatedAt не будет выведено в ответ пока оно равно CreatedAt

Alexander
15.01.2018
18:23:49
но возможно эта вся тема прилично нагрузит процесс сериализации в JSON

но делал искобчительно ради удобства

чтобы не плодить модели и ручками в map[string]interface{} не копировать каждый раз

Google
Alexander
15.01.2018
18:24:34
https://github.com/itrabbit/just/tree/master/components/finalizer

можно юзать finalizer.Finalize

func Finalize(encTagName string, v interface{}, groups ...string) interface{} encTagName это тег из которого будет браться имя поля, к примеру json

v - объекты / массив объектов

groups - список групп

если есть предложения по улучшению всегда рад обсудить

Demuz
15.01.2018
18:26:40
но возможно эта вся тема прилично нагрузит процесс сериализации в JSON
Ну, есть проекты же где это не особо важно. Не остановит же это машину. ?

Alexander
15.01.2018
18:27:16
к примеру думаю сделать не разными тегами, в одним finalize:"" и внутри описывать логику параметрами

Demuz
15.01.2018
18:27:24
если есть предложения по улучшению всегда рад обсудить
Будут предложения. Только позже. Я все изучить не успеваю. Как только, так сразу. ?

Alexander
15.01.2018
18:27:47
я буду только рад

Demuz
15.01.2018
18:28:13
я буду только рад
офтоп. Клевая штуковина. Видели такую?

Сервер фиг пойми где стоит, зафорвардил порты. Приложение сконектилось и они пишут, якобы уже можно разрабатывать.

Страница 1148 из 1674