python graphql перевести uuid в слаг - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Python, графен и sqlalchemy для приложения.Все мои модели имеют поле id и поле uuid, сгенерированные так:

id = db.Column(
    db.Integer,
    primary_key=True,
    unique=True,
    nullable=False)

uuid = db.Column(
    UUID,
    unique=True,
    nullable=false,
    default=uuid.uuid4)

Поле uuid будет использоваться вместо идентификатора в целях безопасности, но проблема с uuidв том, что они слишком длинные, поэтому для их сокращения я использую этот метод .

Теперь я не совсем уверен, где произойдет это преобразование из uuid в slug.Должен ли я определить @property на каждой из моделей, которая будет возвращать слизняк?Или это произойдет в функциях распознавателя graphql, и если да, то как это будет достигнуто?

Спасибо за помощь, спасибо!

1 Ответ

0 голосов
/ 29 апреля 2018

Это в значительной степени зависит от вас, нет никаких особых плюсов или минусов ни того, ни другого.Я предполагаю, что если вы планируете использовать свойство slug в другом месте вашего приложения, имеет смысл поместить его в вашу модель.Если он просто будет использоваться в вашем API GraphQL, сохраните его в резольверах.

Чтобы реализовать его в Graphene, вы можете сделать это следующим образом:

class User(graphene.ObjectType):
    id = graphene.ID(required=True)

    def resolve_id(user, info):
        return uuid_to_slug(user.uuid)
...