如何将 2 buildService(上传和标头)添加到 apollo federation?
Posted
技术标签:
【中文标题】如何将 2 buildService(上传和标头)添加到 apollo federation?【英文标题】:How can I add 2 buildService (upload and header) to apollo federation? 【发布时间】:2022-01-22 08:30:57 【问题描述】:在 apollo federation 中是否有任何选项可以同时添加标头和上传到 buildService? 我想要我的标头进行身份验证和上传以上传文件。 buildService 不支持返回对象。
const gateway = new ApolloGateway(
buildService( name, url )
return new RemoteGraphQLDataSource(
url,
willSendRequest( request, context : request: any; context: any )
request?.http?.headers?.set(
"authorization",
context.auth ? context.auth : ""
);
request?.http?.session?.set(
"session",
context.session ? context.session : ""
);
request?.http?.sessionStore?.set(
"sessionStore",
context.sessionStore ? context.sessionStore : ""
);
,
);
,
);
如何将upload file 也添加到我的 buildService?
【问题讨论】:
【参考方案1】:找到解决方案,如果您扩展 FileUploadDataSource 以某种方式工作:
import FileUploadDataSource from "@profusion/apollo-federation-upload";
class AuthenticationAndUpload extends FileUploadDataSource
willSendRequest(
request,
context,
:
request: GraphQLRequest;
context: any;
)
request?.http?.headers?.set(
"authorization",
context.auth ? context.auth : ""
);
const gateway = new ApolloGateway(
buildService( url )
return new AuthenticationAndUpload( url );
,
);
【讨论】:
以上是关于如何将 2 buildService(上传和标头)添加到 apollo federation?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 Content-Length 标头的情况下流式传输 HTTP 文件上传?
使用 Laravel 5.0 存储门面将元数据、标头(Expires、CacheControl)添加到上传到 Amazon S3 的文件中
如何在 Dropzone 上传请求的标头中包含 CSRF 令牌?