[Dev] API Finary

Bonjour,
Pour le moment, il existe uniquement une API « officielle Â», privĂ©e et probablement documentĂ©e, utilisĂ©e par les dĂ©veloppeurs de Finary pour faire communiquer le site internet et les app Android/iOS avec les serveurs de Finary. Pour se faire, ils utilisent probablement des librairies Ă©crites dans leurs langages de prĂ©dilection pour faciliter l’appel Ă  l’API. Ces libraries ne sont pas publiques, et l’API utilisĂ©e n’est pas documentĂ©e. En gros, on ne connait pas tous les appels possibles et dans les appels qu’on peut voir, on peut ne pas connaitre Ă  quoi correspond un paramètre ou une valeur retournĂ©e. A ma connaissance, il n’y a pas d’API publique, mĂŞme uniquement pour des bĂ©ta-testeurs.

Avec quelques autres, j’ai regardĂ© les communications entre le site, les apps et le serveur et nous avons Ă©cris « Ă  la main Â» une librairie/wrapper « finary_uapi Â» en Python, qui utilise les appels qu’on peut repĂ©rer et essaie deviner quels sont les paramètres. « openapi-finary Â» est une approche diffĂ©rente mais pour le mĂŞme rĂ©sultat. Au lieu d’utiliser Python directement, j’ai essayĂ© de dĂ©crire et documenter les appels que je voyais passer entre le site et le serveur. Grâce Ă  cette « documentation Â» au format OpenAPI, on pourrait gĂ©nĂ©rer des libraries/wrappers en diffĂ©rents langages. Je n’ai pas mis « openapi-finary Â» Ă  jour depuis longtemps. C’est un gros boulot Ă  maintenir car ça dĂ©crit les valeurs de sortie, et « finary_uapi Â» est suffisant pour mon besoin. D’autant plus que l’API peut changer Ă  tout moment et invalider tout le travail.

En plus de finary_uapi en Python, ils existent d’autres librairies « Ă  la main Â» dans d’autres langages (Rust et Ruby) et des outils qui les utilisent pour crĂ©er des fonctions que le site ou les apps finary ne proposent pas (encore?).

Ces libraries/wrappers ne font pas de scrapping (elles ne lisent pas le code HTML des pages du site) . Elles se font passer pour le site internet ou les apps web (elles récupèrent les données avant qu’elles soient mise en forme par le navigateur, elles utilisent la même API). Pour avoir accès aux données, tu dois entrer ton email/mot de passe, comme sur le site internet.

J’espère que ça clarifie la situation.