3
respostas

Utilização do GraphQL

Boa tarde pessoal, tudo bem?

Estou aprendendo sobre GraphQL conforme o tutorial a seguir https://github.com/leangen/graphql-spqr-samples/tree/master/spring-boot-starter-sample/src/main/java/io/leangen/graphql/samples/service, e consegui implementar.

Mas agora me surgiu uma dúvida, ao consultar tenho um techo do json que fica assim:

        "allItems": [
            {
                "id": 1,
                "location": "Regal A",
                "description": "Tasse",
                "formattedDate": "2016-12-08"
            },
            {
                "id": 2,
                "location": "Regal A",
                "description": "Teller",
                "formattedDate": "2016-12-09"
            },
            {
                "id": 3,
                "location": "Regal A",
                "description": "Tasse",
                "formattedDate": "2016-12-10"
            }
        ]
    },
    "extensions": null
}

Será que existe alguma forma de restringir a quantidade de items no array allItems[] ? Por exemplo digamos que eu tenha 100 items, mas só quero trazer os 3 primeiros.

Valeu

3 respostas

E ai Jorge Augusto, blz?

Sim, existe uma mineira bem simples de fazer isso.

Basicamente você vai fazer uma pesquisa (query) no seu banco de dados usando o limit, sendo que o valor de limit você deve passar por parâmetro na query de pesquisa.

Aqui existe um excelente projeto, que você pode estar usando para estudo e verificando como isso ocorre.

git clone https://josebr1@bitbucket.org/josebr1/graphql-blog-api.git

Olá José obrigado pela resposta :D, vou dar uma olhada nesse projeto ...

Mas, agora que eu vi que o json não foi completo.

Na verdade meu array está dentro de um objeto

fooData : {
    "errors": [],
    "data": {
        "itemByDescription": [
            {
                "id": 1,
                "description": "Tasse",
                "location": "Regal A"
            },
            {
                "id": 3,
                "description": "Tasse",
                "location": "Regal A"
            }
        ],
        "item": {
            "location": "Regal A",
            "description": "Teller",
            "formattedDate": "2016-12-09"
        },
        "allItems": [
            {
                "id": 1,
                "location": "Regal A",
                "description": "Tasse",
                "formattedDate": "2016-12-08"
            },
            {
                "id": 2,
                "location": "Regal A",
                "description": "Teller",
                "formattedDate": "2016-12-09"
            },
            {
                "id": 3,
                "location": "Regal A",
                "description": "Tasse",
                "formattedDate": "2016-12-10"
            }
        ]
    },
    "extensions": null
}

Agora sim... hehehe nota que o array allItems está dentro de fooData { }, o que eu preciso é fazer com que esse array retorne uma quantidade limitada de items. Por exemplo vamos supor que fooData, tenha 10 items, eu gostaria que o array allItems [ ] retornasse apenas os 3 primeiros por exemplo. Não sei se tem como fazer isso.

De qualquer forma valeu pela ajuda xD

Se você acompanhar direitinho o projeto que está no repositório que te passei, você vai aprender a fazer isso e muito mais.

Como por exemplo, manipular o banco de dados de forma correta usando um Sequelize, utilização de token (JWT), fazer carregamento de dados por demanda, entre outras coisas.

Sempre é bom estudar ;)