Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
using BenchmarkDotNet.Exporters.Csv;
using BenchmarkDotNet.Exporters;
using HotChocolate.Buffers;
using HotChocolate.Fusion;
using HotChocolate.Fusion.Execution;

namespace Fusion.Execution.Benchmarks;

Expand Down Expand Up @@ -49,14 +51,28 @@ public async Task GlobalSetup()
(_server, _app) = await GraphQLServerHelper.CreateTestServer();
_client = _server.CreateClient();

var items = new HotChocolate.Transport.OperationRequest("{ items }");
var fewItems = new HotChocolate.Transport.OperationRequest("{ fewItems }");

var fusionItems = new HotChocolate.Fusion.Transport.OperationRequest(
"{ items }",
id: null,
operationName: null,
onError: null,
variables: VariableValues.Empty,
extensions: JsonSegment.Empty);
var fusionFewItems = new HotChocolate.Fusion.Transport.OperationRequest(
"{ fewItems }",
id: null,
operationName: null,
onError: null,
variables: VariableValues.Empty,
extensions: JsonSegment.Empty);

_fusionItemsRequest = new FusionGraphQLHttpRequest(items, _requestUri);
_fusionFewItemsRequest = new FusionGraphQLHttpRequest(fewItems, _requestUri);
_fusionItemsRequest = new FusionGraphQLHttpRequest(fusionItems, _requestUri);
_fusionFewItemsRequest = new FusionGraphQLHttpRequest(fusionFewItems, _requestUri);
_fusionClient = new FusionClient(_client);

var items = new HotChocolate.Transport.OperationRequest("{ items }");
var fewItems = new HotChocolate.Transport.OperationRequest("{ fewItems }");

_transportItemsRequest = new TransportGraphQLHttpRequest(items, _requestUri);
_transportFewItemsRequest = new TransportGraphQLHttpRequest(fewItems, _requestUri);
_transportClient = new TransportClient(_client);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public static partial class CoreFusionGatewayBuilderExtensions
/// <param name="supportedOperations">
/// The supported operations.
/// </param>
/// <param name="batchingMode">
/// The batching mode.
/// <param name="capabilities">
/// The client capabilities.
/// </param>
/// <param name="defaultAcceptHeaderValues">
/// The <c>Accept</c> header values sent in case of a single, non-Subscription GraphQL request.
Expand Down Expand Up @@ -53,7 +53,7 @@ public static IFusionGatewayBuilder AddHttpClientConfiguration(
string name,
Uri baseAddress,
SupportedOperationType supportedOperations = SupportedOperationType.All,
SourceSchemaHttpClientBatchingMode batchingMode = SourceSchemaHttpClientBatchingMode.VariableBatching,
SourceSchemaClientCapabilities? capabilities = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? defaultAcceptHeaderValues = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? batchingAcceptHeaderValues = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? subscriptionAcceptHeaderValues = null,
Expand All @@ -66,7 +66,7 @@ public static IFusionGatewayBuilder AddHttpClientConfiguration(
name,
baseAddress,
supportedOperations,
batchingMode,
capabilities,
defaultAcceptHeaderValues,
batchingAcceptHeaderValues,
subscriptionAcceptHeaderValues,
Expand All @@ -92,8 +92,8 @@ public static IFusionGatewayBuilder AddHttpClientConfiguration(
/// <param name="supportedOperations">
/// The supported operations.
/// </param>
/// <param name="batchingMode">
/// The batching mode.
/// <param name="capabilities">
/// The client capabilities.
/// </param>
/// <param name="defaultAcceptHeaderValues">
/// The <c>Accept</c> header values sent in case of a single, non-Subscription GraphQL request.
Expand Down Expand Up @@ -122,7 +122,7 @@ public static IFusionGatewayBuilder AddHttpClientConfiguration(
string httpClientName,
Uri baseAddress,
SupportedOperationType supportedOperations = SupportedOperationType.All,
SourceSchemaHttpClientBatchingMode batchingMode = SourceSchemaHttpClientBatchingMode.VariableBatching,
SourceSchemaClientCapabilities? capabilities = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? defaultAcceptHeaderValues = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? batchingAcceptHeaderValues = null,
ImmutableArray<MediaTypeWithQualityHeaderValue>? subscriptionAcceptHeaderValues = null,
Expand All @@ -142,7 +142,7 @@ public static IFusionGatewayBuilder AddHttpClientConfiguration(
httpClientName,
baseAddress,
supportedOperations,
batchingMode,
capabilities,
defaultAcceptHeaderValues,
batchingAcceptHeaderValues,
subscriptionAcceptHeaderValues,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,17 @@ namespace HotChocolate.Fusion.Execution.Clients;
[Flags]
public enum SourceSchemaClientCapabilities
{
None = 0,

/// <summary>
/// The client supports variable batching, where a single request carries multiple
/// sets of variables so the downstream service can resolve them in one round-trip.
/// </summary>
VariableBatching = 1,
VariableBatching = 1 << 1,

/// <summary>
/// The client supports request batching, where multiple independent GraphQL
/// operations are sent as an array in a single HTTP request.
/// </summary>
RequestBatching = 2,

/// <summary>
/// The client supports the Apollo-style request batching format, which uses a
/// JSON array of operation objects as the request body.
/// </summary>
ApolloRequestBatching = 4,

/// <summary>
/// The client supports file upload via the
/// <see href="https://github.com/jaydenseric/graphql-multipart-request-spec">
/// GraphQL multipart request specification</see>.
/// </summary>
FileUpload = 8
RequestBatching = 1 << 2
}
Loading
Loading