Обнаружение полей, запрошенных в запросе Graphql HotchocolateC#

Место общения программистов C#
Ответить
Anonymous
 Обнаружение полей, запрошенных в запросе Graphql Hotchocolate

Сообщение Anonymous »

У меня есть запрос Graphql с двумя полями. Они поступают из отдельных, медленных источников, и любой из них или оба могут привести к ошибке, представленной в этом примере как null.
Если одно или оба поля не равны нулю, я бы мне нравится возвращать значения, которые я могу. Если оба значения равны нулю, я хотел бы вернуть ошибку GraphQL. Я могу сделать это с помощью такого запроса:

Код: Выделить всё

[ExtendObjectType(OperationTypeNames.Query)]
public class FooQuery
{
[GraphQLName("searchFoo")]
public async Task SearchFoo(FooRequest request)
{
var foo = new Foo {
Bar = GetBar(), // Slow, may return null
Baz = GetBaz()  // Slow, may return null
}
if (Bar == null && Baz == null) {
throw new GraphQLException(...);
}
return foo;
}
}
Возможно, пользователя интересует только Бар, и поэтому он не включил Баз в свой запрос.
Вопрос: Есть ли способ обнаружить запрошенные поля и ускорить обработку Baz?
Я я понимаю, что это будет означать, что ответ об ошибке для Bar приведет к тому, что весь запрос вернет ошибку, даже если данные действительно доступны для Baz. У нас уже есть клиенты, вызывающие этот запрос, поэтому я бы предпочел не разбивать его на отдельные запросы, поскольку это потребует изменений в клиентском коде, над которым я не имею контроля.

Подробнее здесь: https://stackoverflow.com/questions/791 ... late-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»