{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/how-to-build-an-express-graphql-server-part-3/",
    "result": {"data":{"markdownRemark":{"html":"<h6 id=\"this-blog-post-is-part-of-a-series-you-must-finish-part-1--part-2-before-continuing-here\" style=\"position:relative;\"><a href=\"#this-blog-post-is-part-of-a-series-you-must-finish-part-1--part-2-before-continuing-here\" aria-label=\"this blog post is part of a series you must finish part 1  part 2 before continuing here permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>This blog post is part of a series. You must finish <a href=\"https://hemanta.io/how-to-build-an-express-graphql-server-part-one/\">part-1</a> &#x26; <a href=\"https://hemanta.io/how-to-build-an-express-graphql-server-part-2/\">part-2</a> before continuing here.</h6>\n<p>We can now access the GraphiQL IDE at the <del>/graphql</del> endpoint. This is how the GraphiQL IDE looks like:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 672px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/1f6e338bc1a35dd5f3873d9ab9247b7d/00e42/graphiQL.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 65.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABSUlEQVQoz4WSy27DIBBF/f+/1qSKlE2ziVKsGvxiMAxvAxV2VWXRxldXaIR04DJMQ0h7+7h9dR0hpOu6vmeMMsYYpXQcx74fhn6glHI+/3qaJtJS1g/NuEmIhXPgnC/LoqRSSkkpGWPDOM4cpmkGEM8ep3meodFaW2u9dzFG730IoWzKObdtq1A7H5wP1vln7zuNlPUirTVqNEYjonX1oBgCIUQqZZ031v3pRu0plUJEbeohxhhja/V4PKTCV7DcBALkxqNSS5VcluV+vx/AIMQe2xija2oMIcQ1hhjI51FsDmCMds557621e+Fd1fGbASCEkHPesa1TMaVUSqnfhmgO4VLKnjytcV1TzrmUUjuAaOwLmHPvfUo/wLOOYQGwzxNiXZ1zOeeU0rqudQRQ/0duDeP8er2+n89vp9PlcuGcw6ZaCED9Cv4Guu/nD9G5zYIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/1f6e338bc1a35dd5f3873d9ab9247b7d/00e42/graphiQL.png\"\n        srcset=\"/static/1f6e338bc1a35dd5f3873d9ab9247b7d/56d15/graphiQL.png 200w,\n/static/1f6e338bc1a35dd5f3873d9ab9247b7d/d9f49/graphiQL.png 400w,\n/static/1f6e338bc1a35dd5f3873d9ab9247b7d/00e42/graphiQL.png 672w\"\n        sizes=\"(max-width: 672px) 100vw, 672px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>GraphiQL is a browser-based editor to explore and test GraphQL requests.</p>\n<p>If you click on <del>Docs</del> at the top right corner, we get access to the Documentation Explorer, which will automatically get populated as we add different types of data to our application.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 669px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2a6da0827957fc1c21256772db457ca2/66b6b/graphiql2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABdElEQVQoz5WSW28bIRBG9///uOahrZJGslU73LJGy7AMMAMsRBsrUu2mrXrEI2cu+mY6Ho6Pjz+U0ofD0RgjpVRKG6PP57MxZozRWpvnWWmtjRFSvs6XMUbvnZmnZVm8X1OM1lptDPjgwINf54s9nU45JSIC79c1MHGmTESjj2vRKcaYcy61WGuV0qW2lIm4BoxCiJxzCJhSypmYSy21lELEzNx7n9Z1DSGkGLXWSmkuNb7/9CsKIay9iB25OBdCQIwhhF0IYZfDB0qqWzkIKWvbiGttbXzG5L2/yuauc0Bx/knrgu7CCJ1xK7nfMgFAjEhExmgp1YdMHpN8/tpenop5Kq/fWX/rIO87AwAx11ov1ip9s7MUL6NSpzhK2t92P/zkwLXWtq0jogPIxGkPZN9ZSnmNdPyBybld7n1DxD3wTL/J29iT/aTEfiSllG3biAnAp/w/nT1Aej8jRLyThfiXbK19ePiitAZwv44dMC6LG3/lDYya650GZ5NhAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/2a6da0827957fc1c21256772db457ca2/66b6b/graphiql2.png\"\n        srcset=\"/static/2a6da0827957fc1c21256772db457ca2/56d15/graphiql2.png 200w,\n/static/2a6da0827957fc1c21256772db457ca2/d9f49/graphiql2.png 400w,\n/static/2a6da0827957fc1c21256772db457ca2/66b6b/graphiql2.png 669w\"\n        sizes=\"(max-width: 669px) 100vw, 669px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>We have a <del>RootQueryType</del>. Click on <del>RootQueryType</del> and you should see something like below:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 670px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/092084866853a48dae4241096c80ad19/6bbca/graphiql3.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 65.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABYklEQVQoz5XSW4/bIBAF4Pz//5bXSlHapErMZeysPTAGhptZ2VuradTdquf94xwQh8vlejqdpFSXyxWgl1JqAK31/X7v+96FPDturdVaNcC9E6KTKaXWWozx8Hg8xnEkIoBeaXgbp7dxGidUGm63W2D2PkTmEIK11jnnvS+lLMtSSjl475lDSukxDBog5eJDjClbmruuc84ZY62lEEKMsW1Z9hyIaCZy3iullNYcs/MhcERDQnTMbK3x3re/ZcVk7TzPQgi94rRjK6TkdURe27bCtix/YLtHSqmeMTnx/RurK6tzhnPpz0v02xH192xEnIl8CDveZ9tZ/PyRzZgmnY2qVreSX2cjIjOnlABAA7zM/nie9klWXEquSyWiCTFw9IF/YSFWXOt21eUzXD6wsdYHfsVfNI/TlFKqtcYY0Rgf4n9gRNz+CRMRGvM8u+u6f+BhGI7HIwAgTs+zaXaI+DV+B7WJ7Y9LZv5WAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/092084866853a48dae4241096c80ad19/6bbca/graphiql3.png\"\n        srcset=\"/static/092084866853a48dae4241096c80ad19/56d15/graphiql3.png 200w,\n/static/092084866853a48dae4241096c80ad19/d9f49/graphiql3.png 400w,\n/static/092084866853a48dae4241096c80ad19/6bbca/graphiql3.png 670w\"\n        sizes=\"(max-width: 670px) 100vw, 670px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>This means that we can fetch a user if we provide an <del>id</del> of type String.</p>\n<p>Now if you click on User, you should see a response that will have three properties: <del>id</del>, <del>firstName</del> &#x26; <del>age</del>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 672px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/55c8b51492496518adc949703301657a/00e42/graphiql4.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABbklEQVQoz33Q3VLcMAwF4Lz/y5WZlk6Hwrbp2s4mJP6RLUuKsd1ZoC3QhTO+8IW/OZKHw93h+vqr0uZw+GHMpLU2xkzTNI7jNE0xcYDsArKU3vsu+7zct9Zqrcw8eO9jjBmztXaaTgDRBwgQ182O40hEzCIitdb2mL+X1tqQUkJEEV7XVWu9l4d8fr/HhEopALDWBYB2KQMAICIxLcuslJa9YCZigZiU1iKSKTNLv5QhxphiTCmdTietX2GtdU6RiXqvvbULOITwNPkyL+ofZkj5ePdN1p8P7thgaehb72/Hds7GCER5nmel1DMmBiR18xkghbyX7Fq6fyx71T9Ya4molLJZa4x5iY83X8I6M0JD19N2YWxrbSml1hpj9CFk4kx83jmh+jV2dM+n8Lu49045h5f4/Numf5jBWSci+76LiPdvsP6zZ7uMvfcAwMyI6L3PJP/h95u3bbu6+vT99nZdVwB4as7ECbPz/mP8GxTn7gFzpppBAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/55c8b51492496518adc949703301657a/00e42/graphiql4.png\"\n        srcset=\"/static/55c8b51492496518adc949703301657a/56d15/graphiql4.png 200w,\n/static/55c8b51492496518adc949703301657a/d9f49/graphiql4.png 400w,\n/static/55c8b51492496518adc949703301657a/00e42/graphiql4.png 672w\"\n        sizes=\"(max-width: 672px) 100vw, 672px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>As you can see, you can get a lot of information just looking inside the Documentation Explorer without checking your schema.</p>\n<h2 id=\"graphql-query\" style=\"position:relative;\"><a href=\"#graphql-query\" aria-label=\"graphql query permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>GraphQL query</h2>\n<p>Let's write our first GraphQL query.</p>\n<p>A query describes the data you want to fetch. Note that the query looks like the shape of the JSON you want, but is <strong>NOT REALLY JSON</strong>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 664px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/1c5dc17812331a9abc895ed162a5bef5/5bd9c/graphiql6.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABBUlEQVQoz83STW/DIAyA4fz/P9iduu6jhiRQoNjYpg2ZUq1TOrWbdtsrXzg8wMHdbrfbbJ4AzHb7bIw1ANZaYywADMNg+36wPQD4Vc651zcD0HfOuRgCIcWUMmJeFWMcnQ8xeX8IIX5OXMb54A+ho1KknoVPTc5tmuZVonqMKfcHLCxapVbRyqIsuhy1dqUs2o7HlHme2xqrKiGZIb4b54dAmShTYfmaDhF1ufXUbuUFV6LiYn4Bb33GhJjwBjNza9N8r1prTEdiFlURLSJF9AaLSGt37fLtnJEvgFbmG26PXkakco/9BzxNU7v2N6yq84N+xykluOzzHvbjODJzuZZz/hl/ABI88A8SI6hOAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/1c5dc17812331a9abc895ed162a5bef5/5bd9c/graphiql6.png\"\n        srcset=\"/static/1c5dc17812331a9abc895ed162a5bef5/56d15/graphiql6.png 200w,\n/static/1c5dc17812331a9abc895ed162a5bef5/d9f49/graphiql6.png 400w,\n/static/1c5dc17812331a9abc895ed162a5bef5/5bd9c/graphiql6.png 664w\"\n        sizes=\"(max-width: 664px) 100vw, 664px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>Here, we asked GraphQL to find the user with an <del>id</del> of 12. And if the user was found, we asked for the <del>id</del>, <del>firstName</del> and the <del>age</del> of the user. The response that we got back from the server looks nearly identical to the query we made. It's imporatnt to note that the response is available as the value of the <del>data</del> field.</p>\n<p>So, how does the query get resolved?</p>\n<p>The query that we wrote gets sent to the <del>RootQuery</del>. The <del>RootQuery</del> then takes the query and enters into our graph of data. Because we have specified <del>user</del> as the field of the query, the <del>RootQuery</del> went and found the <del>user</del> key inside its <del>fields</del> object.</p>\n<p>We have specified in the <del>args</del> key that a query must come with an <del>id</del> of type String. In our query, we have provide the <del>id</del> argument of type String. Then GraphQL goes and finds the user based on the logic we have written inside the <del>resolve()</del> function. The <del>resolve()</del> function returns an object. GraphQL selects the <del>id</del>, <del>firstName</del> and <del>age</del> properties from the object and returns them as response.</p>\n<p>If we try to query for a user that does not exist, we don't get an error. We get the value of the user as <del>null</del>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/8f0aee5746dc2ceb2e49e0c5cf3221b3/1d36f/graphiql7.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 65.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA7ElEQVQoz83Sy27CMBAF0Pz/B9IFDaSgjvP2ePwYjwNJRSAobUSXVa9Glhc+vrLk7Hg47nZvnwB5fgBQAKBUqdRtU9d1WZZVVQFAu0rTNB8nACiztm2NMSEEY8l571ZBxKbtkKjrNRqDuIzGrte9xix4H9OFeZjicGW5juM0TeO8SkoWiareWhec5yjPiZKipMx7xzKohsjyeEdLJCVjqNeEaCxiYAkc15M55yQlluE7nLEIWRfl0fZD3jAzb9mz2fkwn+OtfOD7E7cXiMiC42v8Iv8cj6v8YTNqned5URTv+/3pfParH0pEv+MvFBrwE4FDLLoAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Error Message\"\n        title=\"Error Message\"\n        src=\"/static/8f0aee5746dc2ceb2e49e0c5cf3221b3/1d36f/graphiql7.png\"\n        srcset=\"/static/8f0aee5746dc2ceb2e49e0c5cf3221b3/56d15/graphiql7.png 200w,\n/static/8f0aee5746dc2ceb2e49e0c5cf3221b3/d9f49/graphiql7.png 400w,\n/static/8f0aee5746dc2ceb2e49e0c5cf3221b3/1d36f/graphiql7.png 668w\"\n        sizes=\"(max-width: 668px) 100vw, 668px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>Go to <a href=\"https://hemanta.io/how-to-build-an-express-graphql-server-part-4/\">part-4</a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    position: relative;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n    line-height: 1.4;\n  }\n  \n  .grvsc-code {\n    display: table;\n  }\n  \n  .grvsc-line {\n    display: table-row;\n    box-sizing: border-box;\n    width: 100%;\n    position: relative;\n  }\n  \n  .grvsc-line > * {\n    position: relative;\n  }\n  \n  .grvsc-gutter-pad {\n    display: table-cell;\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  .grvsc-gutter {\n    display: table-cell;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter::before {\n    content: attr(data-content);\n  }\n  \n  .grvsc-source {\n    display: table-cell;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-source:empty::after {\n    content: ' ';\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter + .grvsc-source {\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  /* Line transformer styles */\n  \n  .grvsc-has-line-highlighting > .grvsc-code > .grvsc-line::before {\n    content: ' ';\n    position: absolute;\n    width: 100%;\n  }\n  \n  .grvsc-line-diff-add::before {\n    background-color: var(--grvsc-line-diff-add-background-color, rgba(0, 255, 60, 0.2));\n  }\n  \n  .grvsc-line-diff-del::before {\n    background-color: var(--grvsc-line-diff-del-background-color, rgba(255, 0, 20, 0.2));\n  }\n  \n  .grvsc-line-number {\n    padding: 0 2px;\n    text-align: right;\n    opacity: 0.7;\n  }\n  \n</style>","frontmatter":{"title":"How to Build an Express/GraphQL Server - Part 3?","date":"2021-06-06"}}},"pageContext":{"slug":"/how-to-build-an-express-graphql-server-part-3/","prev":{"fields":{"slug":"/how-to-build-an-express-graphql-server-part-2/"},"frontmatter":{"modules":null}},"next":{"fields":{"slug":"/how-to-build-an-express-graphql-server-part-4/"},"frontmatter":{"modules":null}}}},
    "staticQueryHashes": ["3159585216"]}