Solved

Selecionar apenas os campos necessários

  • 2 May 2023
  • 3 replies
  • 145 views

Userlevel 1
Badge

Bom dia. Estou trabalhando com ‘cards’ que possuem muitos campos (+30)  e na API não retorna todos os campos do ‘card’. Gostaria de saber como faço para recuperar todos os campos ou selecionar apenas os necessários?

Consulta utilizada:

query MyQuery {

    allCards(pipeId: ####) {

        edges {

            node {

                fields {

                    field {

                        id

                    }

                    name

                    value

                }

                id

                title

            }

        }

        pageInfo {

            endCursor

            hasNextPage

            hasPreviousPage

            startCursor

        }

    }

}

icon

Best answer by Felipe Alves 3 May 2023, 23:16

View original

3 replies

Userlevel 4

Olá  Joel, tudo bem?

Esse é o comportamento esperado da funcionalidade. Não são retornados todos os cards pois temos uma paginação. 😊 São 50 cards por pipe ou 30 por fase.
Para pegar todos os cards, você deve primeiro fazer essa query:

 

query MyQuery {

allCards(pipeId: 302720896, first: 50) {

pageInfo {

endCursor

hasNextPage

hasPreviousPage

startCursor

}

edges {

node {

title

id

fields {

name

value

field {

id

internal_id

}

}

}

}

}

}


 

Em seguida, pode usar o ID retornado pelo endCursor para pegar a próxima página:


 

query MyQuery {

allCards(pipeId: 302720896, first: 50, after: "WyIyLjI1IiwiMTg1LjAiLDI2ODc1OTNd") {

pageInfo {

endCursor

hasNextPage

hasPreviousPage

startCursor

}

edges {

node {

title

id

fields {

name

value

field {

id

internal_id

}

}

}

}

}

}

E o hasNextPage vai te mostrar se existem mais páginas.

 

 

Userlevel 1
Badge

@diogo.pessoa sobre a paginação estou ciente. O problema são os campos do card que não retornam todos.

Obrigado pela disponibilidade.

Userlevel 4

Olá, Joel. Tudo bem?

O lado bom de utilizar o graphiql, que você puxa somente as informações que você precisa. Para o seu caso, você sempre precisara informar quais informações você quer que o query, mostre para você. 

 

query MyQuery {

allCards(pipeId: ####) {

edges {

node {

fields {

field {

id

}

Exemplo ali depôs do node você utilizou o Fields {field {id. Se você estiver utilizado pela próxima URL que a pipefy disponibiliza para rodar as querys: https://app.pipefy.com/graphiql

Existe um atalho que basta você clicar no Tecla CTRL + Tecla Espaço, que mostra as opões que você pode utilizar. Com isso, todos os campos que irá aparecer são os que estão disponível para aquela parte da query. 

Nesse print mostro o exemplo de utilizando o Tecla CTRL + Tecla Espaço ele mostra todas as opções que posso utilizar naquele fields. 


Caso ainda tenha dúvida sobre esse caso, só mandar aqui.

Reply