Neste presente artigo vamos explicar e montar um passo a passo para que seja possível usar a API do Manager para associar APIs e Planos em uma determinada APP.
Obs: Todos os testes, casos de uso e imagens presentes nesse artigo foram retirados/realizados no ambiente de suporte.
Para que isso seja possível, é necessário ter em mãos um token sensedia-auth que esteja associado a API do Manager. Sem informar o mesmo nos headers da requisição, não conseguiremos realizar a chamada para a API e teremos como retorno um status code 401.
Com o token ativo, podemos usar a API do Manager para realizar as associações de APIs e Planos à APP. Através da plataforma, temos acesso à toda a documentação (swagger) da API do Manager. Essa documentação está acessível através do ícone de três pontos presente no canto superior direito da tela do manager, conforme podemos ver na imagem abaixo:
Para associar uma API e/ou um plano na APP, devemos fazer uma chamada passando o token sensedia-auth, o ID da APP e informar o corpo da APP no body da requisição. Para isso, o primeiro passo é identificar o ID da APP que está presente na URL da mesma. Segue a imagem no exemplo abaixo:
Feito isso, podemos realizar uma chamada GET /apps/{id} para que possamos ter o conteúdo da APP retornado no body da requisição. Veja o exemplo abaixo
Note que na linha 12, no body de response, temos o campo APIs. Ele retorna um array vazio devido ao fato de que a APP consultada não está associada em nenhuma API. Abaixo, segue o curl da requisição:
curl --location --request GET 'https://manager-support.sensedia.com/api-manager/api/v3/apps/{id}' \
--header 'accept: application/json' \
--header 'Sensedia-Auth: XXXXXXXXXXXXXXXXXXXXXXXXXX'
O próximo passo, é justamente realizar essa associação através de uma chamada na API do manager, para isso, é necessário identificar o ID da API e do(s) planos ao qual necessito realizar a associação. O modo de identificar o ID da API e dos planos é semelhante à forma como identificamos o ID da APP, podemos encontrá-los no link do manager. Veja os exemplos abaixo:
Consultando o ID da API:
Note na imagem acima que o ID dessa API é 522. Da mesma forma que fizemos com a APP, podemos fazer uma chamada GET /apis{apiId} para verificar o copo da API em questão. Veja o exemplo abaixo:
Curl da chamada:
curl --location --request GET 'https://manager-support.sensedia.com/api-manager/api/v3/apis/{apiId} \
--header 'accept: application/json' \
--header 'Sensedia-Auth: xxxxxxxxxxxxxxxx
Veja na imagem acima que essa API tem 1 plano associado. O plano de ID 233. Podemos fazer uma consulta ao mesmo, através de uma chamada para GET /plans/{planId}. Segue o exemplo abaixo:
Assim como em APPs e APIs, o ID do plano também está visível na url do manager ao realizar o acesso. Veja a imagem abaixo:
Anteriormente, vimos que nossa APP não possui associação à nenhuma API. Neste exemplo, vamos associar essa APP à API de ID 522 através do plano de ID 233, plano este que já está associado à API.
Para executar essa tarefa, precisaremos realizar uma chamada para PUT /apps{id}. Assim como nas outras chamadas, vamos precisar informar token sensedia-auth e o ID (nesse caso, da APP). No entanto, a diferença é que vamos enviar o body de response da APP (que conseguimos a partir da chamada para GET /app{id}) na requisição PUT. Veja abaixo o passo a passo:
Verificando o body da APP através de GET /apps{id}.
curl --location --request GET 'https://manager-support.sensedia.com/api-manager/api/v3/apps/4dfd8710-edb6-32ca-bba8-a8d919d1debd' \
--header 'accept: application/json' \
--header 'Sensedia-Auth: XXXXXXXXXXXXXXXXXXXX
Body de response da chamada:
{
"id": 231,
"clientId": "4dfd8710-edb6-32ca-bba8-a8d919d1debd",
"name": "APP para escrita de artigo",
"status": "APPROVED",
"description": "APP criada para escrita de artigo",
"secret": "ecd5badd-2d5c-3ef5-b89b-6b35686f4b4e",
"extraInfo": {},
"developer": "teste@sensedia.com",
"creationDate": 1605035360000,
"showAppGallery": false,
"apis": [],
"accessTokens": [],
"ownerType": "DEVELOPER"
}
Com esses dados em mãos, vamos realizar a chamada PUT /apps{id}, informando o body de response da requisição anterior em formato json com uma modificação. Essa modificação é informar no campo apis do body (que como vimos no início desse artigo, está vazio por não existir nenhuma associação) os IDs da API e do plano. Logo o body que vamos enviar ficará da seguinte forma:
{
"id":231,
"clientId":"4dfd8710-edb6-32ca-bba8-a8d919d1debd",
"name":"APP para escrita de artigo",
"status":"APPROVED",
"description":"APP criada para escrita de artigo",
"secret":"ecd5badd-2d5c-3ef5-b89b-6b35686f4b4e",
"extraInfo":{
},
"developer":"teste@sensedia.com",
"creationDate":1605035360000,
"showAppGallery":false,
"apis":[
{
"id":522,
"plans":[
{
"id":233
}
]
}
],
"accessTokens":[
],
"ownerType":"DEVELOPER"
}
Após isso, basta realizar a chamada. Segue abaixo a evidência:
Curl da chamada:
curl --location --request PUT 'https://manager-support.sensedia.com/api-manager/api/v3/apps/4dfd8710-edb6-32ca-bba8-a8d919d1debd' \
--header 'accept: */*' \
--header 'Sensedia-Auth: 5bd19a54-88de-3f1b-b49d-709a431ebc76' \
--header 'Content-Type: application/json' \
--data-raw '{
"id":231,
"clientId":"4dfd8710-edb6-32ca-bba8-a8d919d1debd",
"name":"APP para escrita de artigo",
"status":"APPROVED",
"description":"APP criada para escrita de artigo",
"secret":"ecd5badd-2d5c-3ef5-b89b-6b35686f4b4e",
"extraInfo":{
},
"developer":"teste@sensedia.com",
"creationDate":1605035360000,
"showAppGallery":false,
"apis":[
{
"id":522,
"plans":[
{
"id":233
}
]
}
],
"accessTokens":[
],
"ownerType":"DEVELOPER"
}'
Feito isso, a associação de API e plano na APP já foi realizada com sucesso. Se fizermos novamente um GET /apps{id} para app em questão, vamos ver que no body de response foram retornadas as informações vinculadas à APP. Veja abaixo:
Este foi um exemplo de como fazer associação de APIs/planos em APPs. No entanto, também abordamos de forma prática como fazer consultas em APPs, APIs e Planos usando a API do manager.
Comentários
0 comentário
Artigo fechado para comentários.