{"id":62219,"date":"2021-08-24T04:00:30","date_gmt":"2021-08-24T12:00:30","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/devops\/?p=62219"},"modified":"2021-08-18T03:31:18","modified_gmt":"2021-08-18T11:31:18","slug":"azurefunbytes-episode-52-intro-to-graphql-with-adron-of-hasurahq","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/azurefunbytes-episode-52-intro-to-graphql-with-adron-of-hasurahq\/","title":{"rendered":"AzureFunBytes Episode 52 &#8211; Intro to @GraphQL with @Adron of @HasuraHQ"},"content":{"rendered":"<p>AzureFunBytes is a weekly opportunity to learn more about the fundamentals and foundations that make up Azure. It&#8217;s a chance for me to understand more about what people across the Azure organization do and how they do it. Every week we get together at 11 AM Pacific on <a href=\"https:\/\/cda.ms\/226\">Microsoft LearnTV<\/a> and learn more about Azure.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Z7BxBMz1--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880\/https:\/\/dev-to-uploads.s3.amazonaws.com\/uploads\/articles\/j2xzw2g664tj31jij13t.gif\" alt=\"AzureFunBytes animation\" \/><\/p>\n<p>The internet is driven by APIs. Software is able to be queried, interconnected, and presented to you thanks to APIs. This week on AzureFunBytes we&#8217;ll focus on using GraphQL. GraphQL is a query language and server-side runtime for APIs that allows you to reduce the &#8220;over-fetching&#8221; problem of querying data. GraphQL provides a way to pull data from a number of data sources with only one call to your API.<\/p>\n<p>From the <a href=\"https:\/\/graphql.org\/\">GraphQL website<\/a>:<\/p>\n<p><em>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.<\/em><\/p>\n<p>Let&#8217;s say you&#8217;re working with an app that requires four different points of data in order to present information to your customers. In a REST API you&#8217;d need to make four different calls to this API. In the case of GraphQL, you can make a single call to the GraphQL service to access all four of those data points.<\/p>\n<p>To help me understand more about GraphQL, I have queried <a href=\"https:\/\/hasura.io\/\">Hasura<\/a> Developer Advocate <a href=\"https:\/\/twitter.com\/Adron\">Adron Hall<\/a> for assistance. Adron comes with years of experience as a coder, a founder, a messenger, and someone who loves to recon what&#8217;s new in software. You can find Adron on <a href=\"https:\/\/github.com\/Adron\">GitHub<\/a>, <a href=\"https:\/\/katacoda.com\/adron\">Katacoda<\/a>, <a href=\"https:\/\/dev.to\/adron\">Dev.to<\/a>, and his own blog <a href=\"https:\/\/compositecode.blog\/\">Composite Thrashing Code<\/a>.<\/p>\n<p><iframe title=\"AzureFunBytes Episode 52 - Intro to @GraphQL with @Adron of @HasuraHQ\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/kSiUqAJ_pEQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=152\">00:02:32 &#8211; Remembering Abel Wang<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=279\">00:04:39 &#8211; Let&#8217;s meet Adron<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=535\">00:08:55 &#8211; Get to know GraphQL<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=817\">00:13:37 &#8211; GraphiQL and VS Code Extension<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=1100\">00:18:20 &#8211; Hasura + Terraform + Azure<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=1278\">00:21:18 &#8211; Data mutation<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=1684\">00:28:04 &#8211; Working with data sources<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/lNLOVxxu6YQ?t=3011\">00:50:11 &#8211; Starting a local GraphQL server<\/a><\/p>\n<p>Adron has the following agenda for this week:<\/p>\n<ul>\n<li>GraphQL + Hasura &#8211; Origins. <\/li>\n<li>Hasura &amp; Azure &#8211; How he can get started with that. <\/li>\n<li>Dev Workflow + CLI * Migrations, Metadata, and Seeding * Local + Prod Infrastructure as Code (i.e. terraform)<\/li>\n<\/ul>\n<h2>So check out this week&#8217;s conversation on GraphQL!<\/h2>\n<p>Learn about Azure fundamentals with me!<\/p>\n<p>Live stream is normally found on Twitch, YouTube, and <a href=\"https:\/\/cda.ms\/226\">LearnTV<\/a> at 11 AM PT \/ 2 PM ET Thursday. You can also find the recordings here as well:<\/p>\n<p><a href=\"https:\/\/twitch.tv\/azurefunbytes\">AzureFunBytes on Twitch<\/a><br \/>\n<a href=\"https:\/\/aka.ms\/jaygordononyoutube\">AzureFunBytes on YouTube<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/channel\/UC-ikyViYMM69joIAv7dlMsA\">Azure DevOps YouTube Channel<\/a><br \/>\n<a href=\"https:\/\/twitter.com\/azurefunbytes\">Follow AzureFunBytes on Twitter<\/a><\/p>\n<p>Useful Docs:<\/p>\n<p><a href=\"https:\/\/cda.ms\/219\">Get $200 in free Azure Credit<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/243\">Microsoft Learn: Introduction to Azure fundamentals<\/a><br \/>\n<a href=\"https:\/\/graphql.org\/\">GraphQL<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/2j1\">Get started with GraphQL on Azure<\/a><br \/>\n<a href=\"https:\/\/hasura.io\">Hasura<\/a><br \/>\n<a href=\"https:\/\/github.com\/Adron\/terrazura\">Hasura + Azure + Terraform: terrazura on GitHub<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/2hB\">Build Scalable APIs using GraphQL and Serverless<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/2hC\">Azure Functions<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/2hD\">API Apps<\/a><br \/>\n<a href=\"https:\/\/cda.ms\/2hF\">Azure Tips and Tricks: How to use a GraphQL on Azure<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The internet is driven by APIs. Software is able to be queried, interconnected, and presented to you thanks to APIs. This week on AzureFunBytes we\u2019ll focus on using GraphQL. GraphQL is a query language and server-side runtime for APIs that allows you to reduce the \u201cover-fetching\u201d problem of querying data.  <\/p>\n","protected":false},"author":39313,"featured_media":62220,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224],"tags":[],"class_list":["post-62219","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"acf":[],"blog_post_summary":"<p>The internet is driven by APIs. Software is able to be queried, interconnected, and presented to you thanks to APIs. This week on AzureFunBytes we\u2019ll focus on using GraphQL. GraphQL is a query language and server-side runtime for APIs that allows you to reduce the \u201cover-fetching\u201d problem of querying data.  <\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/62219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/39313"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=62219"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/62219\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/62220"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=62219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=62219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=62219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}