Skip to content

Commit 147f5a8

Browse files
author
github-actions
committed
Documentation update
1 parent fb688d2 commit 147f5a8

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

docs/getting-started/dependency-injection/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,11 @@ <h2 id="dependency-injection-registration-helpers" style="position:relative;"><a
286286
<td>.NET 5+</td>
287287
</tr>
288288
<tr>
289+
<td><code class="language-text">ValidateServices</code></td>
290+
<td>Verifies that all injected services can be created during GraphQL field execution</td>
291+
<td></td>
292+
</tr>
293+
<tr>
289294
<td><code class="language-text">WithTimeout</code></td>
290295
<td>Configures the execution timeout</td>
291296
<td></td>

docs/migrations/migration8/index.html

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,6 +1141,25 @@ <h3 id="31-unique-cache-keys-for-multi-schema-environments-from-version-840" sty
11411141
<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre></div>
11421142
<p>These changes help ensure that cached documents are correctly associated with the appropriate
11431143
schema when multiple schemas are in use.</p>
1144+
<h3 id="32-code-classlanguage-textigraphqlbuildervalidateservicescode-added-to-validate-services-during-schema-initialization-850" style="position:relative;"><a href="#32-code-classlanguage-textigraphqlbuildervalidateservicescode-added-to-validate-services-during-schema-initialization-850" aria-label="32 code classlanguage textigraphqlbuildervalidateservicescode added to validate services during schema initialization 850 permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>32. <code class="language-text">IGraphQLBuilder.ValidateServices</code> added to validate services during schema initialization (8.5.0+)</h3>
1145+
<p>A new method, <code class="language-text">ValidateServices</code>, has been added to the <code class="language-text">IGraphQLBuilder</code> interface to allow
1146+
you to validate field resolver dependencies during schema initialization. Validation occurs during
1147+
schema initialization, verifying that any field arguments marked with <code class="language-text">[FromServices]</code> can be
1148+
resolved by the DI container, as well as any services referenced via <code class="language-text">.WithService&lt;T>()</code>.
1149+
This method is useful for detecting potential runtime errors caused by missing services or
1150+
incorrectly registered dependencies. The following example demonstrates how to use this method:</p>
1151+
<div class="gatsby-highlight" data-language="csharp"><pre class="language-csharp"><code class="language-csharp">services<span class="token punctuation">.</span><span class="token function">AddGraphQL</span><span class="token punctuation">(</span>b <span class="token operator">=></span> b
1152+
<span class="token punctuation">.</span><span class="token generic-method"><span class="token function">AddSchema</span><span class="token generic class-name"><span class="token punctuation">&lt;</span>MySchema<span class="token punctuation">></span></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span>
1153+
<span class="token punctuation">.</span><span class="token function">ValidateServices</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
1154+
<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre></div>
1155+
<p>You may also manually mark a <code class="language-text">FieldType</code> as requiring a service by calling <code class="language-text">.DependsOn&lt;T>()</code>:</p>
1156+
<div class="gatsby-highlight" data-language="csharp"><pre class="language-csharp"><code class="language-csharp"><span class="token generic-method"><span class="token function">Field</span><span class="token generic class-name"><span class="token punctuation">&lt;</span>StringGraphType<span class="token punctuation">></span></span></span><span class="token punctuation">(</span><span class="token string">"myField"</span><span class="token punctuation">)</span>
1157+
<span class="token punctuation">.</span><span class="token generic-method"><span class="token function">DependsOn</span><span class="token generic class-name"><span class="token punctuation">&lt;</span>IMyService<span class="token punctuation">></span></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span>
1158+
<span class="token punctuation">.</span><span class="token function">Resolve</span><span class="token punctuation">(</span>context <span class="token operator">=></span>
1159+
<span class="token punctuation">{</span>
1160+
<span class="token class-name"><span class="token keyword">var</span></span> service <span class="token operator">=</span> context<span class="token punctuation">.</span>RequestServices<span class="token operator">!</span><span class="token punctuation">.</span><span class="token generic-method"><span class="token function">GetRequiredService</span><span class="token generic class-name"><span class="token punctuation">&lt;</span>IMyService<span class="token punctuation">></span></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
1161+
<span class="token keyword">return</span> service<span class="token punctuation">.</span><span class="token function">GetMyValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
1162+
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre></div>
11441163
<h2 id="breaking-changes" style="position:relative;"><a href="#breaking-changes" aria-label="breaking changes permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Breaking Changes</h2>
11451164
<h3 id="1-query-type-is-required" style="position:relative;"><a href="#1-query-type-is-required" aria-label="1 query type is required permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>1. Query type is required</h3>
11461165
<p>Pursuant to the GraphQL specification, a query type is required for any schema.

page-data/docs/getting-started/dependency-injection/page-data.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

page-data/docs/migrations/migration8/page-data.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)