У меня есть мутация, при которой я хотел бы вернуть данные произвольной формы, но мне трудно представить, как это сделать с помощью мутации графена .
Я бы хотел чтобы вернуть данные вроде этого:
{
"foo": {
"success": [
{
"id": "abc123",
"goober": {
"success": [
{
"id": "goober-type-1",
"baz": "blahblahblah"
},
{
"id": "goober-type-2",
"baz": "blahblahblah"
}
],
"failed": [],
"cancelled": []
},
"tronic": {
"success": [
{
"id": "tronic-type-1",
"baz": "blahblahblah"
},
{
"id": "tronic-type-2",
"baz": "blahblahblah"
}
],
"failed": [],
"cancelled": []
}
}
],
"failed": [
{
"id": "abc123",
"goober": {
"success": [],
"failed": [
{
"id": "goober-type-3",
"baz": "blahblahblah"
}
],
"cancelled": [
{
"id": "goober-type-4",
"baz": "blahblahblah"
}
]
},
"tronic": {
"success": [],
"failed": [
{
"id": "tronic-type-4",
"baz": "blahblahblah"
}
],
"cancelled": [
{
"id": "tronic-type-3",
"baz": "blahblahblah"
}
]
}
}
]
}
}
Мой инстинкт хотел определить graphene.ObjectType
таким образом:
class Goober(graphene.ObjectType):
id = graphene.String()
baz = graphene.String()
class Tronic(graphene.ObjectType):
id = graphene.String()
baz = graphene.String()
class Foo(graphene.ObjectType):
id = graphene.String()
goober = graphene.ObjectType(
success = graphene.List(Goober),
failed = graphene.List(Goober),
cancelled = graphene.List(Goober)
)
tronic = graphene.ObjectType(
success = graphene.List(Tronic),
failed = graphene.List(Tronic),
cancelled = graphene.List(Tronic)
)
class Results(graphene.ObjectType):
foo = graphene.ObjectType(
success=graphene.List(Foo),
failed=graphene.List(Foo)
)
Но я действительно никуда не денусь с этот подход, и я чувствую, что я в корне неправильно что-то понимаю.
Я имел успех в других областях, возвращая SQL объекты и некоторые пользовательские объекты, но не с генерацией и возвращением относительно сложных, вложенных данных, таких как это. Любой совет будет высоко ценится.