Если одно или оба поля не равны нулю, я бы мне нравится возвращать значения, которые я могу. Если оба значения равны нулю, я хотел бы вернуть ошибку 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
Мобильная версия