Skip to main content
Solved

Integração com API REST



Bom dia!


O pipefy oferece a possibilidade de integração com aplicação utilizando um WS REST? Se sim, poderia utilizar todos os verbos ou há alguma restrição e qual seria a documentação para este caso?"

Best answer by ijoire7

Consegui aqui e espero poder ajudar:

 

{ me { name } } é o que você quer fazer de busca, por exemplo: :point_down:

{
  allCards(pipeId: 301742761){
    edges{
      node{
        id
      }
    }
  }
}


Aí ele buscará todos os cards do pipe com este pipeId. Isso que será adicionado no { me { name } }.

 

 

***********************

 

 

No Authorization deve ser incluído o nome Bearer antes do seu Token. Exemplo :point_down:

 
 

 

***********************

 

 

No Content-type o tipo de conteúdo que você quer gerar. Eu por exemplo utilizei o JSON. Exemplo :point_down:

 

 

 

***********************

 

 

Resultado JSON (ids dos cards do meu pipe escolhido. No caso só tinha um card criado) :point_down: 

{
  "data": {
    "allCards": {
      "edges": [
        {
          "node": {
            "id": "445472542"
          }
        }
      ]
    }
  }

 

Resultado em Node.js :point_down:

 

const sdk = require('api')('@pipefy-developers/v1.0#1mld74kq6v5yiu');

sdk['graphql-endpoint']({
  query: '{allCards(pipeId: 301742761){edges{node{id}}}}'
}, {
  Authorization: 'Bearer dasd32422iou42i3dasasdascsc'
})
  .then(res => console.log(res))
  .catch(err => console.error(err));

 

 

 

LINK da página para criar o exemplo: https://developers.pipefy.com/reference/graphql-endpoint

View original
Did this topic help you find an answer to your question?

10 replies

Marcos Carvalho
Pipefy Staff
Forum|alt.badge.img+6

Olá Renata!

 

O Pipefy oferece a possibilidade de integração utilizando a API através de GraphQL.

 

O GraphQL tem um único endpoint e todas as operações são realizadas por meio desse caminho utilizando o verbo POST.

POST https://api.pipefy.com/graphql

 

Para obter dados, você faz uma query. Para modificar os dados, você faz uma mutation

 

Segue abaixo uma query simples em cURL:

curl --request POST \
  --url https://api.pipefy.com/graphql \
  --header 'authorization: Bearer YOUR_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"query":"{ me { name } }"}'

 

Segue abaixo o link para a documentação de nossa API:

 

https://developers.pipefy.com/reference

 

 

Caso queira aprender mais sobre GraphQL, estes links abaixo pode te ajudar. 

 

https://graphql.org/learn/queries/

 

https://www.howtographql.com/

 

 


jaderdiego.assis

nos parametros "query":"{ me { name } }" o que deve ser preenchido? 

onde eu encontro qual o id do meu workflow para eu criar o card via rest no pipefy?

 

poderiam me ajudar?

Obrigado


leandrohesi
  • New Member
  • 2 replies
  • July 28, 2021
jaderdiego.assis wrote:

nos parametros "query":"{ me { name } }" o que deve ser preenchido? 

onde eu encontro qual o id do meu workflow para eu criar o card via rest no pipefy?

 

poderiam me ajudar?

Obrigado

Conseguiu resolver? Posso te ajudar caso ainda precise. Consegui implementar criação e movimentação de card via API. Deu um trabalhinho, mas ficou bom! =D


raimundo.junior
leandrohesi wrote:
jaderdiego.assis wrote:

nos parametros "query":"{ me { name } }" o que deve ser preenchido? 

onde eu encontro qual o id do meu workflow para eu criar o card via rest no pipefy?

 

poderiam me ajudar?

Obrigado

Conseguiu resolver? Posso te ajudar caso ainda precise. Consegui implementar criação e movimentação de card via API. Deu um trabalhinho, mas ficou bom! =D

Olá Leandro. Gostaria de ver como você implementou essa parte de criação de cards e movimentação.


leandrohesi
  • New Member
  • 2 replies
  • July 30, 2021
raimundo.junior wrote:
leandrohesi wrote:
jaderdiego.assis wrote:

nos parametros "query":"{ me { name } }" o que deve ser preenchido? 

onde eu encontro qual o id do meu workflow para eu criar o card via rest no pipefy?

 

poderiam me ajudar?

Obrigado

Conseguiu resolver? Posso te ajudar caso ainda precise. Consegui implementar criação e movimentação de card via API. Deu um trabalhinho, mas ficou bom! =D

Olá Leandro. Gostaria de ver como você implementou essa parte de criação de cards e movimentação.

me chama no leandrohesi@gmail.com e eu te explico


raimundo.junior

Olá, Leandro. Tudo bem. Eu te enviei um e-mail no leandrohesi@gmail.com, mas provavelmente você não conseguiu ver ainda ou não teve tempo de responder.

Quando puder ter um tempinho aí, gostaria de ver essa implementação das chamadas dos serviços para a criação de cards e movimentações no pipefy.

Desde já agradeço.


ijoire7
  • New Member
  • 3 replies
  • September 10, 2021

Bom dia, minha dúvida também é essa: "query":"{ me { name } }"  o que colocar? 

O pessoal que está respondendo aí já deveria sanar essa dúvida por aqui mesmo para não ficar a todo momento respondendo a mesma pergunta de um a um. kkk


ijoire7
  • New Member
  • 3 replies
  • September 10, 2021
raimundo.junior wrote:

Olá, Leandro. Tudo bem. Eu te enviei um e-mail no leandrohesi@gmail.com, mas provavelmente você não conseguiu ver ainda ou não teve tempo de responder.

Quando puder ter um tempinho aí, gostaria de ver essa implementação das chamadas dos serviços para a criação de cards e movimentações no pipefy.

Desde já agradeço.

Olá, se tiver esta implementação e puder me passar agradeço demais! Preciso disso mesmo que você solicitou também. :slight_smile:


ijoire7
  • New Member
  • 3 replies
  • Answer
  • September 10, 2021

Consegui aqui e espero poder ajudar:

 

{ me { name } } é o que você quer fazer de busca, por exemplo: :point_down:

{
  allCards(pipeId: 301742761){
    edges{
      node{
        id
      }
    }
  }
}


Aí ele buscará todos os cards do pipe com este pipeId. Isso que será adicionado no { me { name } }.

 

 

***********************

 

 

No Authorization deve ser incluído o nome Bearer antes do seu Token. Exemplo :point_down:

 
 

 

***********************

 

 

No Content-type o tipo de conteúdo que você quer gerar. Eu por exemplo utilizei o JSON. Exemplo :point_down:

 

 

 

***********************

 

 

Resultado JSON (ids dos cards do meu pipe escolhido. No caso só tinha um card criado) :point_down: 

{
  "data": {
    "allCards": {
      "edges": [
        {
          "node": {
            "id": "445472542"
          }
        }
      ]
    }
  }

 

Resultado em Node.js :point_down:

 

const sdk = require('api')('@pipefy-developers/v1.0#1mld74kq6v5yiu');

sdk['graphql-endpoint']({
  query: '{allCards(pipeId: 301742761){edges{node{id}}}}'
}, {
  Authorization: 'Bearer dasd32422iou42i3dasasdascsc'
})
  .then(res => console.log(res))
  .catch(err => console.error(err));

 

 

 

LINK da página para criar o exemplo: https://developers.pipefy.com/reference/graphql-endpoint


rodolfo-silva5

Olá pessoal,

Estou com um problema ao consumir a api usando o exemplo em nodejs.

Tenho o seguinte retorno:

 


{
>    '0': {
>      instancePath: '/paths',
>      schemaPath: '#/additionalProperties',
>      keyword: 'additionalProperties',
>      params: { additionalProperty: '' },
>      message: 'must NOT have additional properties',
>      isIdentifierLocation: true
>    },
>    stack: 'SyntaxError: OpenAPI schema validation failed.\n' +
>      '\n' +
>      'ADDITIONAL PROPERTY must NOT have additional properties\n' +
>      '\n' +
>      '  24 |   ],\n' +
>      '  25 |   "paths": {\n' +
>      '> 26 |     "": {\n' +
>      '     |     ^^    is not expected to be here!\n' +
>      '  27 |       "post": {\n' +
>      '  28 |         "summary": "Example",\n' +
>      '  29 |         "description": "",\n' +
>   
>    message: 'OpenAPI schema validation failed.\n' +
>      '\n' +
>      'ADDITIONAL PROPERTY must NOT have additional properties\n' +
>      '\n' +
>      '  24 |   ],\n' +
>      '  25 |   "paths": {\n' +
>      '> 26 |     "": {\n' +
>      '     |     ^^    is not expected to be here!\n' +
>      '  27 |       "post": {\n' +
>      '  28 |         "summary": "Example",\n' +
>      '  29 |         "description": "",',
>    length: 1,
>    concat: [Function: concat],
>    copyWithin: [Function: copyWithin],
>    fill: [Function: fill],
>    find: [Function: find],
>    findIndex: [Function: findIndex],
>    lastIndexOf: [Function: lastIndexOf],
>    pop: [Function: pop],
>    push: [Function: push],
>    reverse: [Function: reverse],
>    shift: [Function: shift],
>    unshift: [Function: unshift],
>    slice: [Function: slice],
>    sort: [Function: sort],
>    splice: [Function: splice],
>    includes: [Function: includes],
>    indexOf: [Function: indexOf],
>    join: [Function: join],
>    keys: [Function: keys],
>    entries: [Function: entries],
>    values: [Function: values],
>    forEach: [Function: forEach],
>    filter: [Function: filter],
>    flat: [Function: flat],
>    flatMap: [Function: flatMap],
>    map: [Function: map],
>    every: [Function: every],
>    some: [Function: some],
>    reduce: [Function: reduce],
>    reduceRight: [Function: reduceRight],
>    at: [Function: at],
>    toJSON: [Function: toJSON],
>    details: [
>      {
>        instancePath: '/paths',
>        schemaPath: '#/additionalProperties',
>        keyword: 'additionalProperties',
>        params: [Object],
>        message: 'must NOT have additional properties',
>        isIdentifierLocation: true
>      }
>    ],
>    name: 'SyntaxError',
>    toString: [Function: toString],
>    [Symbol(Symbol.iterator)]: [Function: values],
>    [Symbol(Symbol.unscopables)]: [Object: null prototype] {
>      copyWithin: true,
>      entries: true,
>      fill: true,
>      find: true,
>      findIndex: true,
>      flat: true,
>      flatMap: true,
>      includes: true,
>      keys: true,
>      values: true,
>      at: true
>    }
>  }

 

Código usado:

sdk['graphql-endpoint']({  query: '{allCards(pipeId: 302194528){edges{node{id}}}}'}, {  Authorization: 'Bearer *token*'})  .then(res => console.log(res))  .catch(err => console.error(err))

Alguma ideia, ou sugestão de algum caminho?
Obrigado


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings