запрос graphql с использованием сущности typeorm - PullRequest
0 голосов
/ 12 июня 2018

Я учу graphql и комбинирую его с typeorm.Я написал запрос с graphql и мне было интересно, если это правильный способ объединить сущность typeorm и тип graphql для одной и той же сущности.Или у меня есть способ использовать сущность typeorm вместо типа graphql в качестве возвращаемого значения?

Сущность typeorm и тип graphql имеют абсолютно одинаковые поля, по существуточно такие же.Только один из них определен как тип graphql, а другой использует декораторы * 1013. *

Я также не уверен, как эта магия возвращает TestType из Promise<Test>.Где TestType - это тип graphql, а <Test> - это typeorm сущность.

import {GraphQLFieldConfig, GraphQLNonNull} from "graphql/type/definition";
import {TestType} from "../type/TestType";
import {GraphQLID} from "graphql";
import {IGraphQLContext} from "../IGraphQLContext";

export const Test: GraphQLFieldConfig<any, IGraphQLContext, any> = {
    // notice the type to return here is the graphql type
    type: new GraphQLNonNull(TestType),
    description: "A query for a test",
    args: {
        id: {
            type: new GraphQLNonNull(GraphQLID),
            description: "The ID for the desired test"
        }
    },
    async resolve (source, args, context) {
        // getTest(...) here returns a promise<Test> where Test is a typeorm entity
        return context.db.testDAO.getTest(args.id);
    }
};

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Если вы ищете магию Prisma (автоматически сгенерированные БД и схемы), а также гибкость размещения ваших API и доступа к моделям и распознавателям, чтобы вы могли выполнять пользовательские действия, вам следует проверить Warthog .Это среда API-интерфейса GraphQL Node.js, написанная на TypeScript, где вы настраиваете средства разрешения и модели данных, и она автоматически генерирует всю вашу схему с упорядоченной разбивкой на страницы, фильтрацией и т. Д., Аналогично соглашениям Prisma.Он не такой многофункциональный, как Prisma, но дает вам гораздо больше контроля.Вы можете проверить warthog-starter , который поможет вам быстро приступить к работе.

Отказ от ответственности: я являюсь автором Warthog

0 голосов
/ 13 августа 2018

Я решил прекратить попытки использовать typeorm и пошел с Prisma .

...