是的,Apollo Federation 支持 Code-First 方法。以下是一个使用 TypeGraphQL 的示例:
import { Field, ObjectType, ID } from 'type-graphql'
import { ApolloFederation } from '@apollo/federation'
@ApolloFederation()
@ObjectType()
export class Product {
@Field((type) => ID)
id: string
@Field()
name: string
@Field()
price: number
}
这个例子中,我们使用 TypeGraphQL 定义了一个产品对象,并使用 @ApolloFederation 装饰器声明其作为 Apollo Federation 实体。这使得我们可以将该实体与其他实体组合成一个图表。
需要注意的是,Apollo Federation 在执行 Code-First 方法时需要使用 @ApolloFederation 装饰器,以确保所有的实体都被正确地标记为所需的服务。