Autenticação das Requisições às APIs

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: OAuth 2.0 modelo simples OAuth 2.0 rotas e serviços ### Exemplos de chamadas e respostas a serem executadas 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: ```json { "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: ```json { "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.