[ 
https://issues.apache.org/jira/browse/CXF-8991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17831375#comment-17831375
 ] 

Andriy Redko commented on CXF-8991:
-----------------------------------

[~krzyshio] I am not sure I understood the problem: Apache CXF's behavior is 
quite straightforward with respect for empty content type - use provided value 
or fall back to default {color:#000000}"text/xml".{color} If you default 
content type is not satisfactory - it should be provided explicitly in the 
request, as you mentioned in the description. Thank you.

> Enhancement: Determine Content Type for Empty Requests with Consideration for 
> `application/json`
> ------------------------------------------------------------------------------------------------
>
>                 Key: CXF-8991
>                 URL: https://issues.apache.org/jira/browse/CXF-8991
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 3.6.3
>            Reporter: Krzysztof Grabowski
>            Priority: Trivial
>
> *Summary:* In Apache CXF version 3.6.3, the handling of content type for 
> empty requests defaults to a specific behavior that may not accommodate all 
> use cases, specifically when dealing with JSON content types. This 
> enhancement proposal aims to extend the {{determineContentType()}} method 
> functionality to better support scenarios where {{application/json}} content 
> type should be inferred or explicitly set for empty requests.
> *Problem:* Currently, when making empty requests (no request body), the 
> {{HttpURLConnection}} does not set the {{Content-Type}} header unless 
> explicitly defined by the user. This behavior is controlled by the 
> {{setProtocolHeadersInConnection}} method, which defaults to setting the 
> content type to {{*/*}} or dropping it entirely for GET requests or when the 
> {{SET_EMPTY_REQUEST_CT_PROPERTY}} is explicitly set to false. This approach 
> does not account for situations where an empty request should imply a 
> specific content type, such as {{{}application/json{}}}, which is a common 
> use case in RESTful APIs.
> *Proposed Improvement:* I suggest enhancing the {{determineContentType()}} 
> method to include logic that checks the request context or headers for 
> indications that {{application/json}} should be used as the content type for 
> empty requests. This would involve:
>  * Extending the logic within {{determineContentType()}} to infer 
> {{application/json}} when appropriate, possibly based on additional headers 
> or request properties indicating that the request is intended to be 
> interpreted as a JSON request
> *Benefits:*
>  * Aligns Apache CXF's handling of content types for empty requests with 
> common RESTful API practices.
>  * Provides more intuitive behavior for API consumers and developers, 
> reducing the need for workarounds to explicitly set content types for empty 
> JSON requests.
>  * Enhances the framework's flexibility in handling various content types, 
> particularly for APIs that predominantly use JSON.
> *Impact:* This change is expected to improve Apache CXF's usability for 
> developers working with JSON-centric APIs, making it easier to comply with 
> API contracts that expect specific content types for all requests, including 
> those without a body.
> ----



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to