Folks,
une question rapide. Comment les gens font l'interface avec les API restful a partir d'un code C++? Est ce que les gens interface avec curl manuellement. Ou est ce que les gens utilisent une lib pour faire ca? Une recommendation en particulier ?
Thanks!
Je connais pas spécialement des gens/boites qui font des API en C++, la tendance "actuelle" que j'ai pu apercevoir c'est de faire une API avec un langage plus haut niveau que le C++ et si tu as une partie critique dans ton application, de coder un micro-service que l'API fait appel. (via rabbitmq par ex)
Sinon j'avais entendu parler de restbed, mais j'ai jamais testé personnellement.
https://github.com/corvusoft/restbed
Perso j'utilisais fork et je recouvrais le fils en curl mais c'était pour un projet personnel
Yiurule, ca c'est pour faire le serveur j'ai l'impression. C'est le client dont j'ai besoin. Le reste de la logique est deja ecrit en C++, donc je veux pas reecrire toute mon application en autre chose.
ACanOfPickIes, oui, c'est ce que je ferais si j'ai vraiment pas le choix. Mais je prefererais ne pas avoir a faire l'encodage des valeures des parametres a la main. la RFC url est certainement casse couille a implementer.
Si tu veux pas tout refaire un truc de ce genre peut faire l'affaire https://github.com/mrtazz/restclient-cpp ?
Un truc comme ca pourrais aider. Ma question est ce que vous avez une recommendation en particulier?
Regarde du coté de cpp-netlib peut-être
https://github.com/cpp-netlib/cpp-netlib
ou proxygen
https://github.com/facebook/proxygen
https://code.facebook.com.com/projects/676603015770415/
Je comprends pas bien le problème, si tu as une API REST, qu'elle soit écrite en C++ ou en n'importe quoi ça change rien, tu peux la requêter avec ce que tu veux, c'est le but
Si tu veux POCer ouais, curl + jq ou xmllint c'est très bien. Si c'est pour programmer peu importe, tant qu'il y a un client HTTP c'est suffisant
Le 23 février 2017 à 23:41:40 WatchItBurn a écrit :
Je comprends pas bien le problème, si tu as une API REST, qu'elle soit écrite en C++ ou en n'importe quoi ça change rien, tu peux la requêter avec ce que tu veux, c'est le butSi tu veux POCer ouais, curl + jq ou xmllint c'est très bien. Si c'est pour programmer peu importe, tant qu'il y a un client HTTP c'est suffisant
Il y a une API RESTful dont on ne sait pas en quoi elle est écrite, et on s'en fiche comme tu dis
et la question est quelle lib utiliser de plus commun et standard pour requêter cette API dans un programme C++
et pour répondre, s'il n'y a que quelques requetes par ci par là, alors je pense que je passerais par libcurl
sinon je pense que j'essayerais de voir s'il y a moyen d'utiliser spécifiquement le module network du framework qt sans être contraint d'importer qtcore, a priori je crois que c'est ok à ce niveau là
il me semble qu'ils ont une bonne api haut niveau pour tout ce qui est requete http
http://doc.qt.io/qt-5/qnetworkrequest.html
C'est pas un peu overkill de sortir des grosses librairies alors que ça se fait plutôt facilement avec juste des socket ?
il me semble qu'ils ont une bonne api haut niveau pour tout ce qui est requete http
http://doc.qt.io/qt-5/qnetworkrequest.html
Meh, tu m'as donne de faux espoir! C'est dans QT, j'y ai cru. En fait, ca n'a pas l'air mieux que curl.
C'est pas un peu overkill de sortir des grosses librairies alors que ça se fait plutôt facilement avec juste des socket ?
Oui tiens pourquoi pas. Et puis je vais parser l'xml a la main aussi puisque j'ai que ca a foutre...
Le 24 février 2017 à 01:16:57 RegleGraduee a écrit :
C'est pas un peu overkill de sortir des grosses librairies alors que ça se fait plutôt facilement avec juste des socket ?
Bah oui, utiliser un client dédié et suffisamment abstrait pour être facile d'utilisation c'est carrément overkill par rapport à réimplémenter HTTP