[ https://issues.apache.org/jira/browse/CXF-8991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17831375#comment-17831375 ]
Andriy Redko edited comment on CXF-8991 at 3/27/24 2:24 PM: ------------------------------------------------------------ [~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 the default content type is not satisfactory - it should be provided explicitly in the request, as you mentioned in the description. Thank you. was (Author: reta): [~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)