RESTful module
RESTful module is a new approach to providing a REST server in Drupal. Its concepts and philosophy appears in the module's README so I won't repeat it, but I'd like to go over some of the key points.
<span class="cp"><?php</span><span class="c1">// Handler v1.0</span><span class="nv">$handler</span> <span class="o">=</span> <span class="nx">restful_get_restful_handler</span><span class="p">(</span><span class="s1">'articles'</span><span class="p">);</span><span class="c1">// GET method.</span><span class="nv">$result</span> <span class="o">=</span> <span class="nv">$handler</span><span class="o">-></span><span class="na">get</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span><span class="c1">// Output:</span><span class="k">array</span><span class="p">(</span> <span class="s1">'id'</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'example title'</span><span class="p">,</span> <span class="s1">'self'</span> <span class="o">=></span> <span class="s1">'https://example.com/node/1'</span><span class="p">,</span><span class="p">);</span><span class="c1">// Handler v1.1 extends v1.0, and removes the "self" property from the</span><span class="c1">// exposed properties.</span><span class="nv">$handler</span> <span class="o">=</span> <span class="nx">restful_get_restful_handler</span><span class="p">(</span><span class="s1">'articles'</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span><span class="nv">$result</span> <span class="o">=</span> <span class="nv">$handler</span><span class="o">-></span><span class="na">get</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span><span class="c1">// Output:</span><span class="k">array</span><span class="p">(</span> <span class="s1">'id'</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'label'</span> <span class="o">=></span> <span class="s1">'example title'</span><span class="p">,</span><span class="p">);</span><span class="cp">?></span><span class="x"></span>
In the past year almost every site we have is either completely decoupled from the server side where AngularJs serves the webapp, or AngularJS plays a smaller part, and we just embed web components inside a Drupal page to provide a slick UI.
Up until now our go to module was RestWs by the wonderful Klausi, which wraps around Entity API module's metadata wrapper. Basically, it hands over to the metadata wrapper the responsibility for the access and for the actual value it spits out.
It works fine, however the JSON it exposes has too much information.