要解决这个问题,需要在 Flutter 项目中针对每个 GraphQL API 分别命名。可以在项目的 amplify\lib\amplifyconfiguration.dart 文件中进行配置。例如,假设你有两个 GraphQL API,分别为“api1”和“api2”,则可以按照以下方式进行配置:
Amplify.addPlugins([AwsAmplifyPlugin()]); // 自己使用的插件
Amplify.configure(amplifyconfig);
Amplify.addPlugin(AmplifyAPI());
Amplify.configure(amplifyconfig);
void configureAmplify() async {
AmplifyAPI api1 = AmplifyAPI();
AmplifyAPI api2 = AmplifyAPI();
await Amplify.addPlugin(api1, apiName: "api1");
await Amplify.addPlugin(api2, apiName: "api2");
await Amplify.configure(amplifyconfig);
}
这样,你就可以在 Flutter 项目中使用以下代码轻松访问你的 GraphQL API:
Amplify.API.query(
request: GraphQLRequest(
document: "query MyQuery {...}",
apiName: "api1"
)
);
注意,这里的“apiName”参数就是之前在配置中为每个 API 指定的名称。
通过这种方式,你就可以为 Flutter 项目中的多个 GraphQL API 构建完整的配置,从而避免“More than one graphQL API configured”这个问题了。