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 integração no canal abaixo.
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.
Para outras linguagens e ferramentas, consulte a documentação oficial.
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