[http-client-csharp] Adopt streaming/jsonl Spector scenario#10754
Draft
JonathanCrd wants to merge 4 commits into
Draft
[http-client-csharp] Adopt streaming/jsonl Spector scenario#10754JonathanCrd wants to merge 4 commits into
JonathanCrd wants to merge 4 commits into
Conversation
…n MethodParameterSegments navigation When MethodParameterSegments navigation resolves to a BinaryData property, the expression was passed directly as a BinaryContent protocol argument without wrapping. This caused a CS1503 compilation error. Wrap the resolved property expression with RequestContentApiSnippets.Create() when the protocol parameter is a content parameter. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ntent fix Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove streaming/jsonl from failingSpecs list - Add generated stub project under Spector/http/streaming/jsonl/ - Add JsonlTests.cs with BasicSend and BasicReceive tests - Add project reference in Spector.Tests.csproj - Update launchSettings.json via full Generate.ps1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
commit: |
Contributor
|
No changes needing a change description found. |
… test Update BasicReceive test to use the protocol method and enumerate the response stream line-by-line via IAsyncEnumerable<Info>, demonstrating the streaming-friendly pattern that avoids buffering the entire JSONL payload into memory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Work in Progress — This PR is pending design discussion on how the C# generator should handle streaming operations.
Summary
Adopts the
streaming/jsonlSpector scenario for the C# HTTP client emitter.Tracking issue: #10738
What's Included
streaming/jsonlfrom\\inSpector-Helper.psm1, added project references and launch profileIAsyncEnumerable<T>receive pattern: TheBasicReceivetest demonstrates streaming-friendly consumption of JSONL responses — reading the responseContentStreamline-by-line and yielding deserializedInfoobjects viaIAsyncEnumerable<T>, without buffering the entire payload into memoryBasicSendtest: Builds the JSONL payload from typed objects and sends via the generated convenience methodDesign Gap
The generator currently emits
BinaryDatafor JSONL bodies because TCGC classifies these operations asbasic(nostreamingmethod kind exists). TheIAsyncEnumerable<T>pattern is demonstrated in the test code as a proof-of-concept for what the generator should eventually emit automatically.See review discussion in PR #10740 for context on the streaming design considerations.
🤖 Created with JonathanCrd's copilot