title: HTTP method to use when processing client data to produce output
body: <p>I have a requirement to add an endpoint to my API to read a large encrypted input file and return some decrypted metadata from the file.</p>
  
  <p>The ideal solution to me would be to use a GET endpoint and take the encrypted blob in as a query parameter, but I'm concerned about URI length limits in different implementations.</p>
  
  <p>Placing the data as a body parameter appears to be a bad idea (<a href="https://stackoverflow.com/questions/978061/http-get-with-request-body">HTTP GET with request body</a>), not least because I'm worried it will wreak havoc with server-side caching solutions that do not expect any information in the body of a GET.</p>
  
  <p>What is the correct HTTP method to use when taking data from a client and processing it to produce output?</p>
  
  <p><strong>UPDATE</strong>
  My current thoughts are taking the data in the body of a POST, and returning a 201 with the LOCATION header containing a GET URL that references the resource (i.e., the decrypted metadata). As the resource itself is not persisted in any way, I will have to place the metadata in as a query parameter to the GET. But as the metadata is length-limited (an application constraint), this shouldnt be a problem.</p>