Como posso mapear quem consome minhas APIs?

Você consegue mapear o consumidor de uma API por meio de client ID e/ou access token informados na requisição. Para enxergar as credenciais informadas, é necessário inserir interceptores no fluxo da API (a nível da API como um todo, de um recurso ou operação chamada).

Mas há duas formas diferentes de recuperar o client ID e/ou o access token:

  • utilizando o interceptor de Log e checando os detalhes de uma requisição na aba GATEWAY TRACE do Trace de uma API; ou

  • inserindo interceptors de validação de client ID e/ou access token e checando as credenciais na aba OVERVIEW do Trace (os interceptores podem ser: Client ID Validation, Access Token Validation ou OAuth). Neste caso, é necessário ter uma app cadastrada no Manager.

Para mostrar essas formas na prática, vejamos algumas requisições a uma API de exemplo chamada Documentation Images.

Na imagem abaixo, vemos o registro de uma requisição feita a um recurso em que apenas incluímos um interceptor de Log. Enviamos uma requisição que conta com client_id e access_token em headers, mas o client ID não é de nenhuma app cadastrada no Manager. No Trace da API, vemos o registro da chamada:

trace no app

Clicando sobre o registro, você é direcionado à aba OVERVIEW do Trace. Como não incluímos interceptors que validam Client ID ou access token no fluxo da API, eles não são validados e nem exibidos nos campos correspondentes:

trace no app overview

Entretanto, como colocamos o interceptor de Log no fluxo, podemos ver os detalhes da requisição clicando na aba btn[GATEWAY TRACE] e então no ícone icon view ao lado de Request log. O client_id e o access_token informados na requisição são exibidos nos headers:

trace no app details

Agora, se fizermos uma chamada à API utilizando as credenciais de uma app cadastrada no Manager e com validação de client ID e token, a informação é mais completa. Em primeiro lugar, adicionamos o interceptor de OAuth no fluxo do recurso que será chamado. Na requisição, informamos via header o client_ID e o access_token da app. Nesse caso, o Trace da API já exibe a app e o proprietário do token:

trace app

Clicando sobre o registro, a aba OVERVIEW exibe o client ID (criptografado em md5) e o access token:

trace app overview

Se você colocar também um interceptor de Log, poderá ver as mesmas credenciais nos detalhes da aba GATEWAY TRACE.

Thanks for your feedback!
EDIT
How useful was this article to you?