Преобразование json в графеновый ответ graphql

Я использую graphene и flask для создания сервера graphql. У меня есть довольно дорогой запрос, и я хотел бы его кэшировать. В настоящее время я вручную запускаю схему, чтобы получить результат JSON, который затем сохраняю в базе данных. Я думаю, что могу перехватить запрос в промежуточном программном обеспечении, но не уверен, как преобразовать JSON, который у меня есть, в формат, который графен умеет обрабатывать.


person harinsa    schedule 11.10.2017    source источник


Ответы (1)


Я использовал решение, найденное на этом сайте: https://www.codementor.io/nikolayderkach/how-to-build-a-graphql-wrapper-for-a-restful-api-in-python-e7w68kcav

import json
from collections import namedtuple

def _json_object_hook(d):
    return namedtuple('X', d.keys())(*d.values())

def json2obj(data):
    return json.loads(data, object_hook=_json_object_hook)

...

class Foo(graphene.ObjectType):
    something = ...

    def resolve_something(self, info):
        ...
        return json2obj(json.dumps(your_json_object))
person cardoso    schedule 31.01.2018