<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/announcing-the-plumber-v0-4-4-release/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://trestletech.com/2017/12/04/plumber-v0-4-4/"> Trestle Technology, LLC - R</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<blockquote>
<p>Plumber is a package which allows you to create web APIs from your R code. If you’re new to Plumber, you can find out more at <a rel="nofollow" href="https://www.rplumber.io/" target="_blank">www.rplumber.io</a>.</p>
</blockquote>
<p>We’re excited to announce the v0.4.4 release of Plumber! This release adds a handful of oft-requested features and cleans up a few issues that came out of the major refactor that took place in the 0.4.2 release. We’ve also continued to expand the <a rel="nofollow" href="https://www.rplumber.io/docs/routing-and-input.html" target="_blank">official Plumber documentation</a>. We’ll mention the highlights below, but you can see the full release notes for v0.4.4 <a rel="nofollow" href="https://github.com/trestletech/plumber/releases/tag/v0.4.4" target="_blank">here</a>. The release is on CRAN now, so you can update using:</p>
<pre><code>install.packages(&quot;plumber&quot;)
</code></pre>
<h2>Plumber v0.4.4 Highlights</h2>
<ol>
<li>Support customized image sizes on the <code>@png</code> and <code>@jpeg</code> annotations. More details <a rel="nofollow" href="https://www.rplumber.io/docs/rendering-and-output.html#customizing-image-serializers" target="_blank">here</a>.</li>
<li>Support expiration, <code>HTTPOnly</code>, and <code>Secure</code> flags on cookies as discussed <a rel="nofollow" href="https://www.rplumber.io/docs/rendering-and-output.html#setting-cookies" target="_blank">here</a> (but see the “Known Bugs” section below for an important note about cookie expiration in v0.4.4).</li>
<li>Restore functionality of <a rel="nofollow" href="https://www.rplumber.io/docs/routing-and-input.html#static-file-handler" target="_blank"><code>PlumberStatic</code> routers</a> (<a rel="nofollow" href="https://github.com/trestletech/plumber/issues/156" target="_blank">#156</a>).</li>
<li>Support arguments sent from clients to nested subrouters.</li>
<li>For APIs <a rel="nofollow" href="https://www.rplumber.io/docs/hosting.html#digitalocean" target="_blank">deployed using DigitalOcean</a>, set the working directory to the root of the API before starting.</li>
<li>Restore functionality of <a rel="nofollow" href="https://www.rplumber.io/docs/programmatic-usage.html#customize-router" target="_blank"><code>setErrorHandler</code></a>.</li>
<li>Ignore capitalization when searching for <code>plumber.r</code> and <code>entrypoint.r</code> files when <code>plumb()</code>ing a directory.</li>
<li>Support query strings with keys that appear more than once<br>
(<a rel="nofollow" href="https://github.com/trestletech/plumber/pull/165" target="_blank">#165</a>)</li>
<li>Fix the validation error warning at the bottom of deployed Swagger files<br>
which would have appeared any time your <code>swagger.json</code> file was hosted in<br>
such a way that a hosted validator service would not have been able to access<br>
it. For now we just suppress validation of <code>swagger.json</code> files. (<a rel="nofollow" href="https://github.com/trestletech/plumber/issues/149" target="_blank">#149</a>)</li>
<li>Support for floating IPs in DNS check that occurs in <code>do_configure_https()</code></li>
<li>Make adding swap file idempotent in <code>do_provision()</code> so you can now call that function<br>
on a single droplet multiple times.</li>
<li>Support an <a rel="nofollow" href="https://www.rplumber.io/docs/runtime.html#exit-handlers" target="_blank"><code>exit</code> hook</a> which can define a function that will be<br>
evaluated when the API is interrupted. e.g.<br>
<code>pr &lt;- plumb(&quot;plumber.R&quot;); pr$registerHook(&quot;exit&quot;, function(){ print(&quot;Bye bye!&quot;) })</code></li>
<li>Fixed bug in which a single function couldn’t support multiple paths for a<br>
single verb (<a rel="nofollow" href="https://github.com/trestletech/plumber/pull/165" target="_blank">#203</a>).</li>
</ol>
<h2>Known Bugs</h2>
<p>At the time of writing, <a rel="nofollow" href="https://github.com/trestletech/plumber/issues/216" target="_blank">one bug</a> has already been fixed since the v0.4.4 release. Cookie expiration times were not properly being sent to clients which caused most clients to ignore these times altogether and revert back to using session cookies. If you wish to set an expiration time on a cookie, you will need to use the development release of Plumber which you can install using:</p>
<pre><code>devtools::install_github(&quot;trestletech/plumber&quot;)
</code></pre>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://trestletech.com/2017/12/04/plumber-v0-4-4/"> Trestle Technology, LLC - R</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/n73iL_A-MyM" height="1"></a></div>