Size: a a a

GraphQL — русскоговорящее сообщество

2018 March 25

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
источник

A

Alexander in GraphQL — русскоговорящее сообщество
𝖆𝖎𝖛𝖊𝖓
у меня бекэнд на питоне джанго+графин, и там у обьекта ошибки такая сигнатура: def __init__(self, message, nodes=None, stack=None, source=None, positions=None, locations=None) и ничего не задокументировано, и судя по трейсбеку даже если я кидаю этот тип ошибки то он перекинется и от оригинальной ошибки возмет только сообщение, так что расширить обьект ошибки никак не получается...
класс ошибки графина должен, по идее, расширять стандартный класс Error. А ты уже можешь расширить ошибку графина. с питоном у меня не сложилось, поэтому только предположения
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
какую б ошибку я не бросил графин все перебрасывает в свой тип ошибки, так что переопределить не получится(
источник

A

Alexander in GraphQL — русскоговорящее сообщество
я не заню как у вас в питоне, но у нас можно так:
class MySuperError extends GraphQLError { ... }
далее при наступлении ошибки, генери new MySuperError('...') Всё! Графин должен прокинуть именно твой класс.
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
а в графине так:
try: 
 resolve_stuff(bla, foo)
except Exception as e:
 raise GraphQLError(str(e))

тоесть чтобы я не срайзил внутри resolve_stuff оно всегда сконце вернет дефолтный GraphQLError
источник

A

Alexander in GraphQL — русскоговорящее сообщество
𝖆𝖎𝖛𝖊𝖓
а в графине так:
try: 
 resolve_stuff(bla, foo)
except Exception as e:
 raise GraphQLError(str(e))

тоесть чтобы я не срайзил внутри resolve_stuff оно всегда сконце вернет дефолтный GraphQLError
замени GraphQLError на свой класс
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
в доках графкла пишут что нула в дате и сообщения в эрроре должно быть достатовно чтоб описать любую ситуацию
и тут байрон подтверждает https://github.com/graphql/graphql-js/issues/560
так что наверно можно оставить все как есть
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
Alexander
замени GraphQLError на свой класс
это код из библиотеки
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
сорцы придется переписывать)
источник

A

Alexander in GraphQL — русскоговорящее сообщество
𝖆𝖎𝖛𝖊𝖓
сорцы придется переписывать)
зачем ??? ))))))
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
всмысле внутри либы все это делается и из приложения и меня есть власть только над resolve_stuff
источник

A

Alexander in GraphQL — русскоговорящее сообщество
как в питоне делается extends классу?
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
я понимаю что ты предлагаешь, просто графин всегда переделует любую ошибку под свою
источник

A

Alexander in GraphQL — русскоговорящее сообщество
йобушки воробушки... залез на свою голову посмотреть как у вас там классы расширяются...

Аминь!
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
так расширяются ж изи:
class Child(Base): pass
источник

A

Alexander in GraphQL — русскоговорящее сообщество
ну так расширь и используй
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
всмысле внутри либы все это делается и из приложения и меня есть власть только над resolve_stuff
источник

𝖆

𝖆𝖎𝖛𝖊𝖓 in GraphQL — русскоговорящее сообщество
я понимаю что ты предлагаешь, просто графин всегда переделует любую ошибку под свою
источник

ДР

Димка Реактнативный 🛸 in GraphQL — русскоговорящее сообщество
Kirill Nesmeyanov
потому что любое апи для сайтиков скрывается за ней
а если я query запросы не скрываю за ней, то чем это может грозить?
источник