-
Notifications
You must be signed in to change notification settings - Fork 14
Persisted queries
Stanislav Silin edited this page Apr 17, 2023
·
1 revision
To use persisted queries, we need to pass PersistedQueryPipeline
inside GraphQLClient:
var client = new TestServerGraphQLClient(httpClient, new PersistedQueryPipeline());
var response = await client.Execute(new GetUserQuery(1));
Console.WriteLine($"GraphQL: {response.Query}"); // GraphQL: 8cc1ee42eecdac2a8590486826856c041b04981a2c55d5cc560c338e1f6f0285:query GetUserQuery($id: Int!) { user(id: $id) { id firstName lastName } }
Console.WriteLine(response.Data); // UserModel { Id = 1, FirstName = Jon, LastName = Smith }
Now the client will follow "automatic persisted queries" pipeline. Description is here here.
When we need the "persisted queries" pipeline, described here, then change the client initialization like that:
var client = new TestServerGraphQLClient(httpClient, new PersistedQueryPipeline(tryToAddPersistedQueryOnFail: false));
and export defined queries from the assembly:
dotnet zeroql queries extract -a .\bin\Debug\net6.0\TestProject.dll -c TestServer.Client.TestServerGraphQLClient -o ./queries
The queries
folder will contain the set of the "hashed" GraphQL files that you need for your GraphQL server setup:
8cc1ee42eecdac2a8590486826856c041b04981a2c55d5cc560c338e1f6f0285.graphql # query GetUserQuery($id: Int!) { user(id: $id) { id firstName lastName } }
21cc96eaf0c0db2b5f980c8ec8b5aba2e40eb24f370cfc0cd7e4825509742ae2.graphql # mutation AddAvatar($id: Int!, $file: Upload!) { addUserProfileImage(userId: $id, file: $file)}