Question: When a large query exceeds the supported URI length in a RESTful API, as per design patterns for managing lengthy queries, what HTTP method should be used to pass the query in the payload body, and what additional header is required?
Option 1: PUT request with "X-HTTP-Method-Override: GET" header
Option 2: POST request with "X-HTTP-Method-Override: GET" header
Option 3: PATCH request with "Query-Method-Override: GET" header
Option 4: DELETE request with "Override-Method: GET" header
Explanation: When the URI length exceeds the supported limit, to maintain the semantic equivalence of a GET request (which is meant for querying), the query can be passed in the payload body of a POST request. Including the "X-HTTP-Method-Override: GET" header signals that this POST request should be treated as if it were a GET request, adhering to the design pattern for handling large queries without violating HTTP method semantics. This approach ensures compatibility and clarity in intent when the standard GET query string becomes too lengthy.