title: Input parameters in PUT resource handlers in Oracle APEX RESTful Services
body: <p>I'm building a REST API using <a href="http://www.oracle.com/technetwork/developer-tools/apex-listener/documentation/listener-dev-guide-1979546.html" rel="nofollow">Oracle REST Data Services</a> (Called RESTful Services in the APEX UI).</p>
  
  <p>I can read <code>application/x-www-form-urlencoded</code> parameters in POST requests in PL/SQL handlers simply by using <code>:paramter_name</code>. However, they don't seem to work in PUT requests. <a href="https://docs.oracle.com/cd/E21611_01/doc.11/e21058/rest_api.htm#AELIG7136" rel="nofollow">The documentation</a> says that it should work with POST,PUT and DELETE operations. But I could only get it to work with POST.</p>
  
  <p>Is this simply not supported for non-POST requests (and the documentation is misleading), or am I doing something wrong?</p>
  
  <h2>Handler details</h2>
  
  <ul>
  <li>RESTful Service Module: <code>hr/</code></li>
  <li>URI Template: <code>test</code></li>
  <li>Method: <code>PUT</code></li>
  <li>Source Type: <code>PL/SQL</code></li>
  <li>MIME Types Allowed: (empty)</li>
  <li>Requires Secure Access: <code>Yes</code></li>
  </ul>
  
  <p>Source:</p>
  
  <pre><code>begin
   :output := :input;
  end;
  </code></pre>
  
  <p>Parameters:</p>
  
  <pre><code>Name    | Bind Variable Name    | Access Method | Source Type   | Parameter Type
  --------|-----------------------|---------------|---------------|---------------
  output  | output                | OUT           | Response Body | String
  </code></pre>
  
  <h2>Example request</h2>
  
  <p>The request I tried is:</p>
  
  <pre><code>curl -X PUT -H "Content-Type: application/x-www-form-urlencoded" -d 'input=test' https://apex.oracle.com/pls/apex/redacted/hr/test
  </code></pre>
  
  <p>I simply get an empty response.</p>
  
  <p>However, if I change the handler to Method: <code>POST</code>, and try the following request:</p>
  
  <pre><code>curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'input=test' https://apex.oracle.com/pls/apex/redacted/hr/test
  </code></pre>
  
  <p>I get the correct response which is:</p>
  
  <pre><code>{"output":"test"}
  </code></pre>