<p><div><div><div><div data-width="100" data-show-faces="false" data-send="true" data-layout="button_count" data-height="21" data-href="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/"></div></div><div><a data-url="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/" data-counturl="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/" data-count="horizontal" data-text="New package graphql: A GraphQL Query Parser" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://ropensci.org/blog/technotes/2016/10/05/graphql-release-10"> rOpenSci Blog - R</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>The new ropensci <a target="_blank" href="https://cran.r-project.org/web/packages/graphql/">graphql</a> package is now on CRAN. It implements R bindings to the <a target="_blank" href="https://github.com/graphql/libgraphqlparser">libgraphqlparser C++ library</a> to parse GraphQL syntax and export the syntax tree in JSON format:</p>
<div>
<pre><code data-lang="r">graphql2json<span>(</span><span>&quot;{ field(complex: { a: { b: [ $var ] } }) }&quot;</span><span>)</span>
</code></pre>
</div>
<p>A syntax parser is perhaps not super useful to most end-users, but can be used to validate graphql queries or implement a GraphQL API in R. We hope to add more related functionality later on.</p>
<h2>What is GraphQL</h2>
<p>From the <a target="_blank" href="http://graphql.org/">GraphQL website</a>:</p>
<blockquote>
<p>GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.</p>
</blockquote>
<p>GraphQL is a new approach and syntax to structuring API queries. It provides a modern, and perhaps more natural alternative to e.g. REST or SQL (which were designed for hypertext and relational data, respectively). A GraphQL query on the other hand resembles the structure of the data. For example the query:</p>
<div>
<pre><code data-lang="text">{
  me {
    name
  }
}
</code></pre>
</div>
<p>Could produce the JSON result:</p>
<div>
<pre><code data-lang="json"><span>{</span>
  <span>&quot;me&quot;</span><span>:</span> <span>{</span>
    <span>&quot;name&quot;</span><span>:</span> <span>&quot;Luke Skywalker&quot;</span>
  <span>}</span>
<span>}</span>
</code></pre>
</div>
<p>The Github API <a target="_blank" href="https://developer.github.com/early-access/graphql/">supports GraphQL</a> and illustrates how GraphQL reduces the number of requests and data in comparison with traditional REST queries.</p>
<p><div><div><div><div data-width="55" data-show-faces="false" data-send="true" data-layout="box_count" data-height="62" data-href="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/"></div></div><div><a data-url="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/" data-counturl="https://www.r-bloggers.com/new-package-graphql-a-graphql-query-parser/" data-count="vertical" data-text="New package graphql: A GraphQL Query Parser" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://ropensci.org/blog/technotes/2016/10/05/graphql-release-10"> rOpenSci Blog - 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 title="The R Project for Statistical Computing" rel="nofollow" href="https://www.r-project.org/">R</a> news and <a title="R tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=tutorial">tutorials</a> on topics such as: <a title="Data science" rel="nofollow" href="https://www.r-bloggers.com/?s=data%20science">Data science</a>, <a title="Big Data" rel="nofollow" href="https://www.r-bloggers.com/?s=Big%20Data">Big Data, <a title="R jobs" rel="nofollow" href="https://www.r-users.com/">R jobs</a>, visualization (<a title="ggplot and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=ggplot2">ggplot2</a>, <a title="Boxplots using lattice and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=boxplot">Boxplots</a>, <a title="Maps and gis" rel="nofollow" href="https://www.r-bloggers.com/?s=map">maps</a>, <a title="Animation in R" rel="nofollow" href="https://www.r-bloggers.com/?s=animation">animation</a>), programming (<a title="RStudio IDE for R" rel="nofollow" href="https://www.r-bloggers.com/?s=RStudio">RStudio</a>, <a title="Sweave and literate programming" rel="nofollow" href="https://www.r-bloggers.com/?s=sweave">Sweave</a>, <a title="LaTeX in R" rel="nofollow" href="https://www.r-bloggers.com/?s=LaTeX">LaTeX</a>, <a title="SQL and databases" rel="nofollow" href="https://www.r-bloggers.com/?s=SQL">SQL</a>, <a title="Eclipse IDE for R" rel="nofollow" href="https://www.r-bloggers.com/?s=eclipse">Eclipse</a>, <a title="git and github, Version Control System" rel="nofollow" href="https://www.r-bloggers.com/?s=git">git</a>, <a title="Large data in R using Hadoop" rel="nofollow" href="https://www.r-bloggers.com/?s=hadoop">hadoop</a>, <a title="Web Scraping of google, facebook, yahoo, twitter and more using R" rel="nofollow" href="https://www.r-bloggers.com/?s=Web+Scraping">Web Scraping</a>) statistics (<a title="Regressions and ANOVA analysis tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=regression">regression</a>, <a title="principal component analysis tutorial" rel="nofollow" href="https://www.r-bloggers.com/?s=PCA">PCA</a>, <a title="Time series" rel="nofollow" href="https://www.r-bloggers.com/?s=time+series">time series</a>, <a title="finance trading" rel="nofollow" href="https://www.r-bloggers.com/?s=trading">trading</a>) and more...
<img height="1" alt="" width="1" src="http://feeds.feedburner.com/~r/RBloggers/~4/oLj2aEUPRlA"></a></div>