我是 Nestjs 和 GraphQL 的新手。我正在尝试构建一个可以从 Rest API 获取数据的 NestJs GraphQL 服务器。我找到了 RESTDataSource,我正在尝试将它添加到我的 NestJs graphQL Server 中。下面是我的代码
应用模块.ts
@Module({
imports: [ExpenditureModule,GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema.gql')
})],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Expenditure.module.ts(我的模块)
@Module({
providers: [ExpenditureResolver, ExpenditureService,ExpenseManagerAPI]
})
export class ExpenditureModule {}
费用管理器API.ts
@Injectable()
export class ExpenseManagerAPI extends RESTDataSource {
constructor() {
super();
this.baseURL = 'http://localhost:3000/';
}
async getAllExpenses() {
return await this.get('expenseManager');
}
}
费用.resolver.ts
@Resolver(() => ExpenseManager)
export class ExpenditureResolver {
constructor(private readonly expenditureService: ExpenditureService,private expenseManagerAPI:ExpenseManagerAPI) {}
@Query(() => [ExpenseManager], { name: 'expenseManager' })
findAll() {
return this.expenseManagerAPI.getAllExpenses();
}
}
费用管理器.entity.ts
@ObjectType()
export class ExpenseManager {
@Field()
ProfileId: string;
@Field()
Amount: number;
}
所以,当我在我的 GraphQL PlayGround 中查询时
query{
expenseManager{
ProfileId
}
}
它给了我以下错误
[ExceptionsHandler] 无法读取未定义的属性“获取”类型错误:无法读取未定义的属性“获取”
笔记:
使用的 Api ("http://localhost:3000") 已启动并且工作正常。
因此,我该如何解决这个错误?
如何使用 NestJs GraphQL 从 REST API 获取数据?
谢谢!!