Indexing List Type field in a GraphQL type from within a Query











up vote
0
down vote

favorite












Say I have the following GraphQL Schema



query {
allAuthors: [Author]
}

type Author {
id: ID!
name: String!
books: [Book]
}

type Book {
id: ID!
name: String!
author: Author!
}


Now I can successfully run the following query to get all the authors and their associated books



query {
allAuthors {
name,
books {
name
}
}
}


However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



I tried something like this and it doesn't work



query {
allAuthors {
name,
books[3] {
name
}
}
}









share|improve this question


























    up vote
    0
    down vote

    favorite












    Say I have the following GraphQL Schema



    query {
    allAuthors: [Author]
    }

    type Author {
    id: ID!
    name: String!
    books: [Book]
    }

    type Book {
    id: ID!
    name: String!
    author: Author!
    }


    Now I can successfully run the following query to get all the authors and their associated books



    query {
    allAuthors {
    name,
    books {
    name
    }
    }
    }


    However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



    I tried something like this and it doesn't work



    query {
    allAuthors {
    name,
    books[3] {
    name
    }
    }
    }









    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Say I have the following GraphQL Schema



      query {
      allAuthors: [Author]
      }

      type Author {
      id: ID!
      name: String!
      books: [Book]
      }

      type Book {
      id: ID!
      name: String!
      author: Author!
      }


      Now I can successfully run the following query to get all the authors and their associated books



      query {
      allAuthors {
      name,
      books {
      name
      }
      }
      }


      However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



      I tried something like this and it doesn't work



      query {
      allAuthors {
      name,
      books[3] {
      name
      }
      }
      }









      share|improve this question













      Say I have the following GraphQL Schema



      query {
      allAuthors: [Author]
      }

      type Author {
      id: ID!
      name: String!
      books: [Book]
      }

      type Book {
      id: ID!
      name: String!
      author: Author!
      }


      Now I can successfully run the following query to get all the authors and their associated books



      query {
      allAuthors {
      name,
      books {
      name
      }
      }
      }


      However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



      I tried something like this and it doesn't work



      query {
      allAuthors {
      name,
      books[3] {
      name
      }
      }
      }






      graphql






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 22:12









      Siddharth Sharma

      187




      187
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          GraphQL doesn't have syntax for this.



          You can add a "limit" parameter to a field, and this is common enough:



          type Query {
          allAuthors(limit: Int, offset: Int): [Author!]!
          }
          type Author {
          id: ID!
          name: String!
          books(limit: Int, offset: Int): [Book!]!
          }


          If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like



          {
          allAuthors {
          name
          books(limit: 3) {
          name
          }
          }
          }





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243941%2findexing-list-type-field-in-a-graphql-type-from-within-a-query%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote



            accepted










            GraphQL doesn't have syntax for this.



            You can add a "limit" parameter to a field, and this is common enough:



            type Query {
            allAuthors(limit: Int, offset: Int): [Author!]!
            }
            type Author {
            id: ID!
            name: String!
            books(limit: Int, offset: Int): [Book!]!
            }


            If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like



            {
            allAuthors {
            name
            books(limit: 3) {
            name
            }
            }
            }





            share|improve this answer

























              up vote
              2
              down vote



              accepted










              GraphQL doesn't have syntax for this.



              You can add a "limit" parameter to a field, and this is common enough:



              type Query {
              allAuthors(limit: Int, offset: Int): [Author!]!
              }
              type Author {
              id: ID!
              name: String!
              books(limit: Int, offset: Int): [Book!]!
              }


              If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like



              {
              allAuthors {
              name
              books(limit: 3) {
              name
              }
              }
              }





              share|improve this answer























                up vote
                2
                down vote



                accepted







                up vote
                2
                down vote



                accepted






                GraphQL doesn't have syntax for this.



                You can add a "limit" parameter to a field, and this is common enough:



                type Query {
                allAuthors(limit: Int, offset: Int): [Author!]!
                }
                type Author {
                id: ID!
                name: String!
                books(limit: Int, offset: Int): [Book!]!
                }


                If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like



                {
                allAuthors {
                name
                books(limit: 3) {
                name
                }
                }
                }





                share|improve this answer












                GraphQL doesn't have syntax for this.



                You can add a "limit" parameter to a field, and this is common enough:



                type Query {
                allAuthors(limit: Int, offset: Int): [Author!]!
                }
                type Author {
                id: ID!
                name: String!
                books(limit: Int, offset: Int): [Book!]!
                }


                If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like



                {
                allAuthors {
                name
                books(limit: 3) {
                name
                }
                }
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 10 at 23:05









                David Maze

                7,8122820




                7,8122820






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243941%2findexing-list-type-field-in-a-graphql-type-from-within-a-query%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Bressuire

                    Vorschmack

                    Quarantine