Gchange : accès technique (API) aux annonces

API de recherche

Je ne serai pas disponible de mon côté (mon créneau Gchange s’est refermé - sauf par échange sur le forum, entre deux autres projets). Cependant, comme évoqué ensemble en message privé, j’ai bien avancé sur une API plus simple, pour accéder aux annonces.

Par exemple : data.gchange.fr/market/_api?pretty&type=offer&from=0&size=20&category=cat20&q=mixeur

Documentation

https://data.gchange.fr/market/_api?
  pretty  // Permet de formater le JSON retourner (pas utile en prod)
  &type=offer  // Type d'annonce, parmi 'offer', 'need' ou 'crowdfunding'
  &size=20 // Pour la pagination : taille de la page
  &from=0  // Pour la pagination : numero du 1er enregistrement (0 par défaut)
  &category=cat20 // ID de la catégory (cf URL générée par Gchange, dans la page de recherche)
  &q=photo // Texte libre de rehcerche
  &lat=47  // Recherche spatiale: Latitude
  &lon=1.1 // Recherche spatiale: longitude
  &distance=20km // Recherche spatiale: distance autour du point
  &ĺocation=<ID_shape>  // A VENIR (pas encore implémenté) Identifiant de la région (provenant des cartes pays)

Retour de la requete :

[ {
  "thumbnail" : {
    "_content_type" : "image/png"   // Permet de savoir si une image est disponible. l'URL sera afficher dans une version ultérieure. Pour le moment, elle peut-etre déduite (cf ci-dessous)
  },
  "unit" : "unit", // Unité monétaire : 'unit" ou 'ud'
  "price" : 15000, // Prix, en centimes (il faut diviser par 100)
  "currency" : "g1",
  "type" : "offer",
  "title" : "Hachoir, mixeur, émulsionneur Seb",
  "category" : {
    "name" : "Electroménager",
    "parent" : "cat18",
    "id" : "cat20"
  }
} ]

Pour construire l’URL de l’image : https://data.gchange.fr/market/record/<ID_ANNONCE>/_image/thumbnail.<EXTENSION_SUIVANT_TYPE_IMAGE>

…bon, du coup je me rends compte qu’il me manque l’ID de l’annonce, pour constuire cette URL :frowning:
Bah, c’est qu’une première version, hein ! :confused:

4 J'aimes

@qoop n’hésites pas à me faire tes demandes, dans ce fil par exemple.
Les messages privés n’ont pas lieu d’être pour ces discussions techniques. Essais juste, s’il te plaît, de ne pas essayer de m’impliquer systématiquement vers d’autres outils, qui ne tient qu’à toi de développer. Je me concentre sur l’existant pour des raisons de continuité de service évident. Bref, merci de conserver dans ce fil uniquement ce qui traite de gchange.

2 J'aimes

J’ai l’impression que cette discussion aurait plus sa place sur le forum technique. :innocent:

1 J'aime

Ben non, puisque ce n’est pas lié directement à Duniter… Ce serait mieux dans le forum gchange… mais il est toujours en rade et personne pour s’en occuper.

1 J'aime

Bonjour. Merci pour ce travail. Je note l’API d’accès. Est-ce que par hasard il y aurait un moyen d’envoyer des annonces à Gchange (une API d’ajout donc) ? Mon contexte : je souhaite mettre en place une place de marché locale à l’UTC (Compiègne), je vois trois solutions : développer notre propre solution (et voir plus tard comment la connecter éventuellement), installer notre copie de Gchange (et voir plus tard comment la connecter éventuellement), utiliser l’instance active de Gchange. Dans ce dernier cas, j’aurais bien envisagé une interface spécifique pour faciliter la saisie et les requêtes locales. Au plaisir de recevoir des infos et/ou suggestions.

On est plusieurs a souhaiter ça :wink:

Qu’est-ce qui l’empêche ? que je comprenne bien où en est la communauté ?

Une doc ?
Mais pour ma part, il me faudrait carrément un paquet Yunohost :wink:

OK, donc aujourd’hui personne ne sait comment faire tourner le code qui est sur Github (sauf le développeur) n’est ce pas ? On a des compétences de notre côté, on peut même envisager d’aider à la doc, mais il nous faudra tout de même un point de départ. Quelqu’un est-il en mesure de nous aider à démarrer une installation, puis de nous aider en cas de blocage ?

@bpresles a installé un pod chez lui.
Je ne sais pas trop ou ils en sont au niveau de la synchronisation…
Peut-être aller voir sur le forum technique.

OK, merci. Tu as l’URL de l’instance de @bpresles ? Et si @bpresles veut bien me faire signe pour m’indiquer quelle procédure il a suivi pour l’install, je suis preneur (la synchro, on verra dans un second temps).

Je crois que ce tu cherche est ici.

Mais va voir sur le forum technique.

Bonsoir,

Avez-vous lu le manuel ?

Pas que j’aie installé quoi que ce soit, hein. Juste, une doc existe.

Edit- le ReadMe pointe également sur la doc de l’API.

1 J'aime

Le sujet est chaud bouillant, @bpresles a réussi, @tuxmain essaie (avec un bug) :

Merci de contribuer !

Morale du jour :

Avant RTFM il faut FTFM ( Find The Fuck… Manual :wink: ) !

2 J'aimes

Merci @vit , c’était en effet bien mon problème, je cherchais de la doc (je pensais avoir exprimé mon besoin ainsi, probablement pas assez clairement). Le site gchange pointe sur https://github.com/duniter-gchange/gchange-client, et n’ayant pas d’élément sur l’architecture générale, je n’avais pas connaissance de l’autre dépôt, qui est certainement celui qui expose cette architecture (et donc que je vais consulter à présent).

J’ai noté que pour poser des questions sur ce forum il faut déjà avoir un certain niveau de connaissance générale et donc qu’il n’est pas adapté aux nouveaux arrivants. Merci de l’aide fournie malgré cela.

Non pas du tout, pourquoi dit tu celas ?

C’est juste que les premiers à t’avoir répondus n’avait pas les réponses à tes questions, matograine et vit t’on apportés les réponses qu’ils pouvaient avec leurs connaissances dès leur premier message :wink:

Je ne sais pas si ma réponse a été perçue comme un beau RTFM. Ce n’était pas du tout mon intention.

Comme vous aviez mentionné le dépôt Git de Gchange, j’ai supposé que vous le connaissiez, mais que pour une raison quelconque vous étiez passé à coté du manuel et de la doc de l’API.

Il y a Gchange-Pod, qui héberge les données, et Gchange-client, qui est l’interface utilisateur (web, application, extension de navigateur).

« installer notre copie de Gchange » peut vouloir dire « installer une interface web gchange » ou « installer un pod + une interface web ». Si vous voulez héberger uniquement des annonces spécifique à l’UTC, l’installation d’un pod est nécessaire.

J’espère que vous ferez une belle installation, en tout cas !

Bonjour à vous ! :slight_smile: Est-ce bien une place de marché en G1 ? Êtes vous enseignant à l’UTC ? Quelle matière ?

Si je comprends bien votre besoin, c’est d’avoir des annonces spécifiques, accessibles par exemple sur un site dédié ?

Une solution pourrait être :

  • d’ajouter des règles de synchronisation à la configuration d’un Pod gchange, afin qu’il collecte uniquement suivant vos critères (à définir précisément : est-ce seulement géographique ?).
  • Ensuite d’avoir un site web dédié qui utilise les annonces de ce pod.

Faute de temps, j’ai surtout détailler l’installation des Pod Cesium+ Mais Le Pod gchange a exactement fonctionnement.

Gchange pod est un programme Java, qui lance essentiellement :

  • un elastic search (v2.4) standard (un migration dans les dernière version est déjà prévue);
  • une série de plugins qui vont ajouter : une couche de sécurité, des EndPoint REST pour la lecture/écriture.

La doc :

La construction est en Maven. Le programme se lance depuis le source très simplement, grâce à un profile « run »

mvn install
mvn -Prun -pl gchange-pod-assembly

(je fais ca de tête)

N’hésitez pas à poser vos questions, j’y répondrais au mieux. Sachant que cette semaine je serai vraiment très pris…

1 J'aime

salut @stph La doc et les savoirs faire sont un peu dispersés, faut qu’on trouve et qu’on l’enrichisse de nos expériences :wink:

Par exemple, @kimamila avait parlé de la possibilité d’ajouter des catégories. Mais je ne sais pas encore comment faire, ni comment ajouter un document. Je crois aussi que la synchro des noeuds gchange+ nécessitent une configuration particulière (échange de clefs?). Ce serait bien d’avoir une interface généraliste pour visualiser et parcourir les données ES également.

J’ai installé un Pod gchange+ pour y faire des développements orientés UX. J’ai aussi bien trituré les clients et API autour de la June (g1sms.fr). On peut se caler un rdv pour discuter et avancer ensemble si tu veux?

Merci de toutes ces dernières réponses, je réponds en bloc.

  • Oui j’ai un peu reçu les premières réponses comme un RTFM, alors que je pensais avoir fait l’effort de chercher ; mais donc c’est juste de la communication numérique qui était mal passée, aucune offense.
  • On parle bien d’une place de marché en Ğ1. On a déjà mené un projet l’année dernière avec des échanges en physique et un projet avorté de PDM numérique.
  • Je suis prof à l’UTC (à l’origine base de données, maintenant au département technologie et sciences de l’homme sur un mix Web/SHS : https://librecours.net/parcours/we01-20a)
  • Le projet est un projet du chaton Picasoft dont je suis membre (https://picasoft.net)
  • On va essayer de mener une installation sans synchro et sans toucher au code de notre côté, pour commencer. Ce sera une première étape. L’idée est aussi et surtout de voir si on est capable de générer une activité d’échange locale à l’UTC (on a des stocks d’objet à vendre et des stocks de Ğ1). Je pense qu’on a les éléments techniques nécessaires à présent. À noter qu’on va fonctionner par à coup de temps dispo.
  • Si on avance on pourra imaginer des contribs d’étudiants dans le futur (mais je ne mise pas trop là dessus parce que le contexte techo me parait assez avancé et difficile à rapproprier par un étudiant dans le cadre d’un cours)
  • On peut donc ouvrir un autre fil dans cette partie du forum pour rendre compte de nos expériences ou poser des questions ?
  • Merci @qoop je retiens avec plaisir l’invitation, peut être après qu’on ait déjà avancé un peu ?
  • On utilise Mattermost à l’UTC on a un canal Ğ1 ou on discute (notamment) de cet avant-projet, vous y êtes les bienvenus : https://team.picasoft.net/picasoft/channels/g1 À suivre donc.
2 J'aimes