Как я могу получить доступ к объекту Request из поля внутри ObjectGraphType при использовании GraphQL. net? - PullRequest
0 голосов
/ 04 марта 2020

Я использую GraphQL. net с C#. У меня есть поле внутри ObjectGraphType, которое выглядит примерно так:

        Field<FooGraphType>(
            "baz",
            resolve: context =>
            {
                //I want to inspect the Request object here
            });

Единственная конечная точка, которая у меня есть, выглядит так:

    [HttpPost]
    public async Task<IActionResult> Post([FromBody] GraphQLQuery query)
    {
        // I can access the Request object here
        if (query == null) { throw new ArgumentNullException(nameof(query)); }
        var inputs = query.Variables.ToInputs();
        var executionOptions = new ExecutionOptions
        {
            Schema = _schema,
            Query = query.Query,
            Inputs = inputs
        };

        var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

        if (result.Errors?.Count > 0)
        {       
            return BadRequest(result);
        }

        return Ok(result);
    }

Как я могу разрешить функцию разрешения мое поле ObjectGraphType получает доступ к объекту HttpRequest, найденному в действии контроллера? Хотя я заинтересован в получении всего объекта HttpRequest, было бы достаточно передать определенную c часть информации из запроса в функцию разрешения.

1 Ответ

1 голос
/ 06 марта 2020

Вы можете либо внедрить IHttpContextAccessor, либо сохранить информацию в свойстве userContext.

Если вы задаете UserContext для ExceptionOptions, вы можете получить к нему доступ в контексте функции разрешения поля.

...