看不到关系 - Loopback 4 + MongoDB + openapi-to-graphql
Can't see relations - Loopback 4 + MongoDB + openapi-to-graphql
在此之前,大家好!
我在 Loopback 4 中初始化 Graphql 是这样的:
const graphqlPath = '/graphql';
// @ts-ignore
const oas: Oas3 = await (<Oas3>app.restServer.getApiSpec());
console.log(graphqlHTTP);
const {schema} = await createGraphQLSchema(oas, {
strict: false,
viewer: true,
baseUrl: url,
});
//@ts-ignore
const handler: graphqlHTTP.Middleware = graphqlHTTP({
schema,
graphiql: true,
});
app.mountExpressRouter(graphqlPath, handler);
console.log(`Graphql: ${url}${graphqlPath}`);
然后我有一个关系 Favors>User(一个 User 可以有很多 Favors,但是一个 Favor 只有一个 User)。我已经用 lb4 relation
创建了这种关系,并且 我没有进行任何其他更改。
用户模型:
@hasMany(() => Favor)
favors: Favor[];
喜欢的型号:
@belongsTo(() => User)
userId: string;
在查询 (http://localhost:3000/graphql
) 时,情况是这样的:
{
favors {
id
userId
user {
id
}
}
}
我不知道它是否与 loopback-connector-mongodb
没有正确匹配 ObjectId 有关,但我不知道如何解决这个问题。
我的package.json:
"@loopback/core": "^2.12.0",
"openapi-to-graphql": "^2.2.5",
"loopback-connector-mongodb": "^5.4.0",
来自 LoopBack 团队的问候
为了让 openapi-to-graphql 理解关系,LoopBack 应用程序生成的 OpenAPI 模式必须描述实体之间的 Links。
LoopBack 4 不提供开箱即用的此类元数据。我们一直在 GitHub 问题 loopback-next#2153 中讨论这个用例,不幸的是我们还没有找到明确的解决方案。
您可以尝试的方法:在您的控制器中,使用指向相关 API 端点的链接部分来增强您的响应规范,以访问相关模型。
在此之前,大家好!
我在 Loopback 4 中初始化 Graphql 是这样的:
const graphqlPath = '/graphql';
// @ts-ignore
const oas: Oas3 = await (<Oas3>app.restServer.getApiSpec());
console.log(graphqlHTTP);
const {schema} = await createGraphQLSchema(oas, {
strict: false,
viewer: true,
baseUrl: url,
});
//@ts-ignore
const handler: graphqlHTTP.Middleware = graphqlHTTP({
schema,
graphiql: true,
});
app.mountExpressRouter(graphqlPath, handler);
console.log(`Graphql: ${url}${graphqlPath}`);
然后我有一个关系 Favors>User(一个 User 可以有很多 Favors,但是一个 Favor 只有一个 User)。我已经用 lb4 relation
创建了这种关系,并且 我没有进行任何其他更改。
用户模型:
@hasMany(() => Favor)
favors: Favor[];
喜欢的型号:
@belongsTo(() => User)
userId: string;
在查询 (http://localhost:3000/graphql
) 时,情况是这样的:
{
favors {
id
userId
user {
id
}
}
}
我不知道它是否与 loopback-connector-mongodb
没有正确匹配 ObjectId 有关,但我不知道如何解决这个问题。
我的package.json:
"@loopback/core": "^2.12.0",
"openapi-to-graphql": "^2.2.5",
"loopback-connector-mongodb": "^5.4.0",
来自 LoopBack 团队的问候
为了让 openapi-to-graphql 理解关系,LoopBack 应用程序生成的 OpenAPI 模式必须描述实体之间的 Links。
LoopBack 4 不提供开箱即用的此类元数据。我们一直在 GitHub 问题 loopback-next#2153 中讨论这个用例,不幸的是我们还没有找到明确的解决方案。
您可以尝试的方法:在您的控制器中,使用指向相关 API 端点的链接部分来增强您的响应规范,以访问相关模型。