Rework low-level HTTP methods and Response structure #44555
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.
Description
This PR is overhauling low-level design concepts with
HttpClient.send
,HttpPipeline.send
, and associated policy classes to explicitly returnResponse<BinaryData>
rather thanResponse<?>
and removedHttpResponse
and makesResponse
a class instead of an interface.The reasoning behind this change is the pattern for handling conversion of the raw network response to the SDK
Response<T>
was forcing the use ofHttpResponse
andHttpResponseAccessHelper
from outside libraries, and thatResponse
vsHttpResponse
caused confusion on which should be used. This simplifies the story to be:BinaryData
.BinaryData
payload and convert it toT
.This removes the need for hidden deserialization and exposing implementation packages outside of ClientCore.
All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines