Автор использует GraphQL с Strawberry для своего интерфейса VueJS и Django backend для создания SPAs. Они сталкиваются с дублированием логики запросов между GraphQL API и фоновыми задачами Django. Чтобы решить эту проблему, они выполняют запросы GraphQL напрямую из Python в Django, избегая полного цикла запрос/ответ. Они генерируют машиночитаемую схему, используя @graphql-codegen/cli, которая также используется для ресурсов интерфейса. Создается класс GraphQLSchema для загрузки и выполнения этих запросов в среде Django. Этот класс использует сохраненные документы, идентифицированные по имени запроса, для выполнения запросов через Strawberry. Этот подход позволяет им повторно использовать ту же логику запросов, определенную для интерфейса, в своих фоновых процессах. Они выполняют желаемую операцию GraphQL по имени, передавая любые необходимые переменные. Это помогает уменьшить дублирование кода, улучшить удобство сопровождения кода и снизить когнитивную нагрузку. Решение обеспечивает согласованность в запросах данных между интерфейсом и backend.
wedgworth.dev
Patrick Altman: Reusing GraphQL Queries within Django
Create attached notes ...
