forked from shinjiDev/petgraphqlsample
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
77 lines (75 loc) · 2.59 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using DemoChoco;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using HotChocolate.Validation;
using HotChocolate.Validation.Types;
using HotChocolate.Diagnostics;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddGraphQLServer()
//.AddQueryType<Query>()
.AddQueryType<QueryType>()
.AddMutationType<MutationType>()
.AddType<AlienType>()
.AddType<CatOrDogType>()
.AddType<CatType>()
.AddType<DogOrHumanType>()
.AddType<DogType>()
.AddType<HumanOrAlienType>()
.AddType<HumanType>()
.AddType<PetType>()
.AddType<BeingType>()
.AddType<ArgumentsType>()
.AddSubscriptionType<SubscriptionType>()
.AddType<ComplexInputType>()
.AddType<Complex2InputType>()
.AddType<Complex3InputType>()
.AddType<InvalidScalar>()
.AddDirectiveType<ComplexDirective>()
.AddDirectiveType(new CustomDirectiveType("directive"))
.AddDirectiveType(new CustomDirectiveType("directive1"))
.AddDirectiveType(new CustomDirectiveType("directive2"))
.AddDirectiveType("onMutation", DirectiveLocation.Mutation)
.AddDirectiveType("onQuery", DirectiveLocation.Query)
.AddDirectiveType("onSubscription", DirectiveLocation.Subscription)
.AddDirectiveType("onFragmentDefinition", DirectiveLocation.FragmentDefinition)
.AddDirectiveType("onVariableDefinition", DirectiveLocation.VariableDefinition)
.AddDirectiveType("directiveA",
DirectiveLocation.Field |
DirectiveLocation.FragmentDefinition)
.AddDirectiveType("directiveB",
DirectiveLocation.Field |
DirectiveLocation.FragmentDefinition)
.AddDirectiveType("directiveC",
DirectiveLocation.Field |
DirectiveLocation.FragmentDefinition)
.AddDirectiveType("repeatable",
DirectiveLocation.Field |
DirectiveLocation.FragmentDefinition,
x => x.Repeatable())
.ModifyOptions(o =>
{
o.EnableOneOf = true;
o.StrictValidation = false;
})
.AddDiagnosticEventListener<MyExecutionEventListener>();
builder.Services.AddOpenTelemetryTracing(
b =>
{
b.AddHttpClientInstrumentation();
b.AddAspNetCoreInstrumentation();
b.AddHotChocolateInstrumentation();
});
builder.Logging.AddOpenTelemetry(
b =>
{
b.IncludeFormattedMessage = true;
b.IncludeScopes = true;
b.ParseStateValues = true;
});
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration["ApplicationInsights:ConnectionString"]);
builder.Services.AddInMemorySubscriptions();
var app = builder.Build();
app.UseWebSockets();
app.MapGraphQL();
app.Run();