
Daniel
17.09.2018
14:37:00

Galya
17.09.2018
14:37:46
@vetcher, done

Artem
17.09.2018
14:37:59
thx

John
17.09.2018
14:38:05

Google

Alexander
17.09.2018
14:46:51
да
сильно с ним извращаться приходится?

Artem
17.09.2018
14:47:30

Aleksandr
17.09.2018
14:47:42
в рамках твоей программерской парадигмы

Alexander
17.09.2018
14:48:04
ну там, интерфейсами жонглировать
reflect расчехлять

Aleksandr
17.09.2018
14:48:28

Alexander
17.09.2018
14:48:51
а какую либу для графа используешь на сервере?

Aleksandr
17.09.2018
14:50:51
https://github.com/graph-gophers/graphql-go

Alexander
17.09.2018
14:51:23
спс

?
17.09.2018
14:57:18
Ребята, по тесту https://bit.ly/gogolang
Отпишитесь, пожалуйста, кто хотел получить расшифровку своих ответов с правильными вариантами, но ещё не получил.

Daniel
17.09.2018
14:57:46

Aleksandr
17.09.2018
14:58:20

Google

Aleksandr
17.09.2018
14:58:49
graphql-go vs go-graphql - юзать надо первую

Daniel
17.09.2018
15:03:15

?
17.09.2018
15:05:29

Roman
17.09.2018
15:06:09

Alexander
17.09.2018
15:08:02
нормальную - это graphql-go ?

Roman
17.09.2018
15:08:24

Alexander
17.09.2018
15:08:43
ну да, я её и имел ввиду

Roman
17.09.2018
15:10:04

Artem
17.09.2018
16:06:38

Roman
17.09.2018
16:08:02

Никита
17.09.2018
16:08:15
Мне порой кажется что в мире существует только два варианта написания апи: rest и graphql
А про JSON RPC никогда не говорят (

Alexander
17.09.2018
16:08:50
А как же апи богов? SOAP например!

Никита
17.09.2018
16:09:14

Roman
17.09.2018
16:09:20

Никита
17.09.2018
16:09:50
Мне кстати из многих апи что я видел понравился апи слака

Roman
17.09.2018
16:11:59
в RPC (REST etc.) ты мыслишь: "что умеет API?"
в GraphQL ты мыслишь: "какие данные предоставляет API?"
в GQL ты думаешь о данных, их типах и взаимосвязях (relations)

Artem
17.09.2018
16:13:03
потому что QL

Никита
17.09.2018
16:13:29
В REST ты думаешь "как натянуть логику на методы HTTP")

Google

Artem
17.09.2018
16:13:50

Heathcliff
17.09.2018
16:13:58
в рест твой сервер думает

Aleksandr
17.09.2018
16:14:03

Никита
17.09.2018
16:14:08
Или же "как представить сложные структуры используя параметры формы"

Aleksandr
17.09.2018
16:15:09

Artem
17.09.2018
16:15:11

Roman
17.09.2018
16:15:47

Artem
17.09.2018
16:15:59

Aleksandr
17.09.2018
16:16:16

Artem
17.09.2018
16:17:19
ну та на динамике, там есть defaultResolver, который как раз и мапит поля на структуру. А еще map[string]interface{} тоже отлично хавает

Roman
17.09.2018
16:17:27

Aleksandr
17.09.2018
16:18:27

Roman
17.09.2018
16:18:50

Artem
17.09.2018
16:18:54

Aleksandr
17.09.2018
16:20:12

Yaroslav
17.09.2018
16:21:20
Например, персональными

Roman
17.09.2018
16:22:44

Google

Artem
17.09.2018
16:22:55

Yaroslav
17.09.2018
16:23:08

Artem
17.09.2018
16:23:09
форкаться и пилить

Roman
17.09.2018
16:23:24

Artem
17.09.2018
16:23:35

Andrey
17.09.2018
16:23:36

Admin
ERROR: S client not available

Roman
17.09.2018
16:24:12

Aleksandr
17.09.2018
16:24:13

Roman
17.09.2018
16:25:14

Artem
17.09.2018
16:25:48

Aleksandr
17.09.2018
16:26:47
в смысле имплементация интересная?

Roman
17.09.2018
16:27:03

Aleksandr
17.09.2018
16:27:35

Roman
17.09.2018
16:27:44
а есть там что-то хорошее?
не знаю честно говоря хорошее или нет.. но много говорят про juniper https://github.com/graphql-rust/juniper

Aleksandr
17.09.2018
16:27:45
во первых конечно реализовать subscriptions

Artem
17.09.2018
16:28:20

Aleksandr
17.09.2018
16:29:15

Roman
17.09.2018
16:29:44
во первых конечно реализовать subscriptions
мы кстати обратную связь решили с помощью webwire, пускай не совсем GraphQL-idiomatic но работает
считай делаешь mutation запрос с query строкой и она тебя подписывает на named-webwire-signal, который ты потом ловишь

Google

Aleksandr
17.09.2018
16:31:38

Andrey
17.09.2018
16:31:47

Roman
17.09.2018
16:32:42

Aleksandr
17.09.2018
16:33:59

Roman
17.09.2018
16:37:12
Но вообще никто не запрещает отдавать на одном энпоинте разный набор полей. Мы так часто делали в зависимости от привелегий.
проблема со специализированными endpoint'ами в tight-coupling'е. Т.е. как только меняются требования клиента (например дизайн изменили, теперь на дашборде оборажается X,Y,Z а не как прежде Y,M,C,A) - нужно переписывать backend для оптимизации, и так постоянно...
а что если у вас не один клиент ещё в добавок?
RPC очень быстро может превратиться в maintenance катастрофу. Из-за этого и появились раньше такие вещи как SQL, которые позволили решать разные проблемы не переписывая имплементацию бд.. с GQL теперь происходит подобное но уже на уровне API и в виде графа

Andrey
17.09.2018
16:43:15

Daniel
17.09.2018
16:44:02
а я чет не вижу проблемы
все протоколы, начиная со второго, отдаются по эндпойнтам с префиксом /vN/, где N - номер версии.
и все тип-топ, старые клиенты забирают то, что надо, новые - то чно хотят.

Roman
17.09.2018
16:46:54

Daniel
17.09.2018
16:47:06
а?!

Roman
17.09.2018
16:49:46
а?!
меняется клиент - меняется сервер. tight coupling, ибо RPC.
в GQL это не так, сервер меняется только в том случае если появляются новые требования к данным, а не к тому как и в каком виде они отдаются
допустим мы изменили view'шку в приложении, было A,B стало A,C; в идеале нам нужно написать новый спец-endpoint для этого нового требования к тому "в каком виде" данные возвращаются. В GQL нам вообще никаких изменений на стороне сервера не потребуются, просто новый query на клиенте и всё.

Andrey
17.09.2018
17:23:05
Эх... Может sql напрямую передавать :) наверное этим все и кончится :)

Aleksandr
17.09.2018
17:23:34

Andrey
17.09.2018
17:23:54

Макс
17.09.2018
17:24:39
добрый вечер
может кто подсказать библиотеки для того чтоб зашифровать строку на js а расшифровать на go