Skip to main content

Introdução

Bem vindo a documentação de integração com serviços da Funcional. Aqui você vai encontrar toda a documentação de integração com os nossos serviços.

Caso sinta falta de alguma informação ou tenha alguma dúvida entre em contato com o nosso time de relacionamento.

Teremos um fórum para tratativas de integração via e-mail, sendo necessário agendamos reuniões técnicas.

GraphQL

Utilizamos GraphQL para os nossos padrões de comunicação. Caso tenha alguma dúvida sobre essa tecnologia podemos te ajudar.

Componentes

Abaixo temos alguns links que pode te ajudar.

Ferramentas para testar

Você pode usar algumas das ferramentas abaixo para testar as suas queries e mutations sem nem mesmo precisar programar algo.

Queries e Mutations

Do padrão graphQL destacamos o conceito de queries e mutations.

Query: Utilizado para consulta de informações. Não é realizada nenhuma alteração no sistema quando é feita uma Query. Por exemplo, a consulta de uma pessoa está inscrita no Programa.

Mutation: Mutations são utilizadas para alterar/criar informações no sistema. Como por exemplo criar uma pré-autorização é utilizado uma mutation devido a salvar as informações no banco de dados.

Tratamento de erros

No GraphQL, por ser uma camada depois do HTTP, os erros são enviados como resposta da requisição. Diferente do padrão REST que os erros são tratados no HTTP Code. Isso porque, é possível enviar mais de um método em uma mesma chamada graphQL e um método pode dar erro e o outro não. Por isso os erro do HTTP Code são erros da camada de aplicação, como por exemplo, erro interno no servidor

Exemplo de erro em GraphQL

{
"errors": [
{
"message": "Field \"createToken\" argument \"password\" of type \"String!\" is required, but it was not provided.",
"locations": [
{
"line": 2,
"column": 3
}
],
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}
]
}

JWT

Para segurança das nossas aplicações utilizamos o padrão JWT para nossos tokens.

Abaixo temos um exemplo de token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
warning

Nunca exponha o token, nem compartilhe com terceiros

O token precisa ser enviado no Header da requisição no campo Authorization passando a variável Bearer + token.

Exemplo:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Abaixo um exemplo de utilização no Insomnia

img