GraphQL сам по себе не определяет никаких вещей, связанных с тем, как выставить его по сети, поэтому он не определяет никаких вещей, связанных с получением HTTP-заголовка. Разработчики должны использовать их способы. Так что, это зависит от лежащих в основе технологий вы используете для обслуживания GraphQL через HTTP.
Предположим, что вы используете graphql-spring-boot и graphql-java-tools
, и, предполагая, что вы не настраиваете GraphQLContext
, вы можете попытаться добавить аргумент DataFetchingEnvironment
в функцию распознавателя, а затем получить GraphQLContext
из него. Затем вы можете получить HttpServletRequest
из контекста и получить доступ к заголовкам:
public Foo resolveFoo(Map<String,String> input , DataFetchingEnvironment env){
GraphQLContext context = env.getContext();
HttpServletRequest request = context.getHttpServletRequest().get();
request.getHeader("content-type");
}