O modelo de autenticação para requisição das APIs segue o padrão OAuth 2.0, usando o tipo de autorização por client_credentials.
Neste modelo o cliente, que irá requisitar as APIs, deve primeiro requisitar um token de acesso através da rota disponível informando um client_id={}
, um client_secret={}
, o tipo de acesso grant_type=client_credentials
e o escopo de acesso scope=parcerias/all
.
O retorno desta requisição terá um token de acesso (access_token), seu prazo de validade (expires_in) em segundos desde a requisição e o tipo de token (token_type).
Com o access_token
, as requisições às APIs fornecidas pela YOUSE devem ter como cabeçalho uma autorização indicando o valor do access_token
e o valor do token_type
.
As figuras abaixo representam o fluxo para requisitar o token de acesso e realizar as chamadas disponíveis pela API:
Para obter o token de acesso
curl -XPOST https://stage-partner-auth.youse.io/oauth2/token --data 'client_id=61vdltov1bcnsbklf14dt88dml&client_secret=121n44bhmu0875inb4mvgsuocd8f9d0sm5o5s0dlrmn7q86eeqcr&grant_type=client_credentials&scope=parcerias/all' -H 'Content-type: application/x-www-form-urlencoded'
Retorno:
{
"access_token": "eyJraWQiOiIwTjZFdnRWc3M0c1wvMDdCWVNmd3JkektPb2xQZFwvQVZCME9cLzlZSWZrSW44PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2MXZkbHRvdjFiY25zYmtsZjE0ZHQ4OGRtbCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoicGFyY2VyaWFzXC9hbGwiLCJhdXRoX3RpbWUiOjE2NjIxNDEzNjcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbVwvc2EtZWFzdC0xX0ZMOE00SE1FZSIsImV4cCI6MTY2MjE0NDk2NywiaWF0IjoxNjYyMTQxMzY3LCJ2ZXJzaW9uIjoyLCJqdGkiOiI5YzdkMzEzYi1jOWFlLTRmZDctYjEzZi04ZGQ2YWMwMzg2NGYiLCJjbGllbnRfaWQiOiI2MXZkbHRvdjFiY25zYmtsZjE0ZHQ4OGRtbCJ9.I-dpM4uC0b2tYSr0XlEbe2OuF0Mk-NBkMDtq_ncPdZAjcfeUswYJnLEjGYBDA5pfVqLpfqSNPsdMNw7aXqP5iUe36hC6yV33vIsXVbZjE4aUb-HN8OiWhd0GK7pocYBEqJCNbrfScIIIWzEjWDdCQ7KRkPa2k3aIZeMymTSNTCVF85DbAzvbHQTq1wHL02h9LcRUwegR-Mf0e3x4_idyKZmRpfZMmHfEpHLpf9tqJmtnHXE2oF7QuG8O2c__ugnbkVFHBwJmgfPtBWhBdqhNEGtZF3WpiP1Sz9PKAS1fvRS2UJKVGm1kba6cezAs4zLXbdkCVxZvMmK9yL_-AcXLVQ",
"expires_in": 3600,
"token_type": "Bearer"
}
Para obter o conteúdo via GRAPHQL
curl -XPOST https://stage-partner-gw-api.youse.io/v1/graphql -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer eyJraWQiOiIwTjZFdnRWc3M0c1wvMDdCWVNmd3JkektPb2xQZFwvQVZCME9cLzlZSWZrSW44PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2MXZkbHRvdjFiY25zYmtsZjE0ZHQ4OGRtbCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoicGFyY2VyaWFzXC9hbGwiLCJhdXRoX3RpbWUiOjE2NjIxNDEzNjcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbVwvc2EtZWFzdC0xX0ZMOE00SE1FZSIsImV4cCI6MTY2MjE0NDk2NywiaWF0IjoxNjYyMTQxMzY3LCJ2ZXJzaW9uIjoyLCJqdGkiOiI5YzdkMzEzYi1jOWFlLTRmZDctYjEzZi04ZGQ2YWMwMzg2NGYiLCJjbGllbnRfaWQiOiI2MXZkbHRvdjFiY25zYmtsZjE0ZHQ4OGRtbCJ9.I-dpM4uC0b2tYSr0XlEbe2OuF0Mk-NBkMDtq_ncPdZAjcfeUswYJnLEjGYBDA5pfVqLpfqSNPsdMNw7aXqP5iUe36hC6yV33vIsXVbZjE4aUb-HN8OiWhd0GK7pocYBEqJCNbrfScIIIWzEjWDdCQ7KRkPa2k3aIZeMymTSNTCVF85DbAzvbHQTq1wHL02h9LcRUwegR-Mf0e3x4_idyKZmRpfZMmHfEpHLpf9tqJmtnHXE2oF7QuG8O2c__ugnbkVFHBwJmgfPtBWhBdqhNEGtZF3WpiP1Sz9PKAS1fvRS2UJKVGm1kba6cezAs4zLXbdkCVxZvMmK9yL_-AcXLVQ' --data-binary '{"query":"query {\n occupations {\n code\n name\n }\n}\n","variables":{}}'
Retorno:
{
"data": {
"occupations": [
{
"name": "Abatedor",
"code": "848505"
},
{
"name": "Acabador de calçados",
"code": "764305"
},
{
"name": "Açougueiro",
"code": "848510"
},
{
"name": "Acrobata",
"code": "376205"
}
]
}
}
Para saber quais são as rotas/operações disponíveis, veja a documentação técnica da API GraphQL.