Get en REST API

4.0
Get en REST API
0
Tags: #<Tag:0x00007f5ff89c0f40>
#1

Bonjour,

En effet je récupéré les données sous format JSON, mais le problème j’arrive pas a récupérer un enregistrement à partir des données.

Exemple:

"0": {
        "code": "330495326",
        "adresse": "16 RUE FRANZ HELLER 35700 RENNES"
    }

Je souhaite récupérer l’adresse

(David AZOULAY) #2

Avant de vous répondre puis-je savoir dans quel contexte vous souhaitez appeler ces services.

Je pose la question car la bonne manière de faire n’est pas la même si vous êtes sur une page interne à la UI, sur une page externe à la UI, sur une intégration M2M, etc.

#3

J’ai pas bien compris votre réponse, pouvez-vous bien détails votre réponse.

#4

J’appelle un web service depuis l’extérieur, pour faire un traitement sur un champ sur page interne UI

(David AZOULAY) #5

Je veux comprendre pourquoi et où vous avez besoin d’appeler les services REST

Si c’est sur une page interne de la UI standard cela n’a aucun sens de taper au niveau REST, vous avez toutes les APIs Javascript pour interagir avec les objets métier de la même manière que les pages génériques.

Si c’est sur une page web externe il y a de nombreuses approches possibles y compris via les libs “contribs” qui facilitent le développement (doncsans avoir à taper directement au niveau REST)

Si c’est pour un autre besoin plus “bas niveau” alors oui éventuellement taper au niveau REST peut avoir du sens

Etc.

Dans tous les cas avant de poser une question “technique” comme celle là il est très important de nous expliquer le contexte de ce que vous voulez faire afin que l’on puisse vous guider vers la solution la meilleure dans ce contexte particulier.

#6

J’ai un champ adresse dans lequel je saisie une valeur, à partir de cette valeur j’appelle un webService qui permet de vérifier est-ce que l’adresse saisie est correct ou non.

PS: j’utilise le webService de la poste.

Vous voulez le code que j’ai écrit !?

(David AZOULAY) #7

OK on parle donc d’appeler un webservice externe depuis un formulaire générique et valoriser un champ de ce formulaire avec un item de la réponse de ce webservice, c’est bien ça ?

Copiez coller votre code se sera effectivement beacoup plus simple pour comprendre ce que vous voulez faire.

PS: En lisant votre post initial je pensais qu’on parlait d’appeler les webservices REST de Simplicité…

#8

ça marche voila mon code :

 var candidatureId = obj.getRowId();
 var address=0;
 var o = obj.getGrant().getTmpObject("Candidature");
 o.resetFilters();
 o.setFieldFilter("row_id",candidatureId);
 var rows = o.search();
 //var res= ArrayList();

 for (var i = 0; i < rows.size(); i++) {
   o.setValues(rows.get(i));
   
	var numero= obj.getFieldValue("numero").replace(" ", "%");
	var typeRue = obj.getFieldValue("typeRue");
	var nomRue = obj.getFieldValue("nomRue").replace(" ", "%");
	var villeCan = obj.getFieldValue("villeCan").replace(" ", "%");
	var codePostal =obj.getFieldValue("codePostal");
	var addresse= numero+"%"+typeRue+"%"+nomRue+"%"+codePostal+"%"+villeCan;
	var rep = Tool.readUrl("https://api.laposte.fr/controladresse/v1/adresses?q="+addresse+"", null, null, "GET", null, "x-okapi-key:dKJLxG6sYR1URLf2Fu9ag5iOSNJisSZ0Sli9W468zY+iHuVvO5Vs6oQLQR59P4gK", "UTF-8");
	//console.log("adresses : " + rep);
   address = address+rep;
   //res.add(rep);
 }

  console.log("Adresse  : " + address);
  o.getField("nomRue").setValue(address);
  o.save(); 
(David AZOULAY) #9

Je ne comprends pas trop votre pb… la question c’est comment parser la string JSON que renvoie le Tool.readUrl ? C’est juste ça ?

Si oui la réponse c’est var rep = new JSONObject(Tool.getUrl(...)); et ensuite vous utilisez les APIs de JSONObject cf. https://static.javadoc.io/org.json/json/20170516/org/json/JSONObject.html

NB: appel de service devrait être dans un bloc try/catch

#10

toujours j’arrive pas a récupérer la valeur de l’adresse.

(David AZOULAY) #11

Le fonctionnement de la librairie org.json n’a rien à voir avec Simplicité.

Par ailleurs, si vous ne copiez/collez pas votre code comment voulez vous qu’on vous aide !?!?

#12
 var candidatureId = obj.getRowId();
 var address=0;
 var o = obj.getGrant().getTmpObject("Candidature");
 o.resetFilters();
 o.setFieldFilter("row_id",candidatureId);
 var rows = o.search();
 var res= ArrayList();

 for (var i = 0; i < rows.size(); i++) {
   o.setValues(rows.get(i));
   
	var numero= obj.getFieldValue("numero").replace(" ", "%");
	var typeRue = obj.getFieldValue("typeRue");
	var nomRue = obj.getFieldValue("nomRue").replace(" ", "%");
	var villeCan = obj.getFieldValue("villeCan").replace(" ", "%");
	var codePostal =obj.getFieldValue("codePostal");
	var addresse= numero+"%"+typeRue+"%"+nomRue+"%"+codePostal+"%"+villeCan;
	var rep = new JSONObject(Tool.readUrl("https://api.laposte.fr/controladresse/v1/adresses?q="+addresse+"", null, null, "GET", null, "x-okapi-key:dKJLxG6sYR1URLf2Fu9ag5iOSNJisSZ0Sli9W468zY+iHuVvO5Vs6oQLQR59P4gK", "UTF-8"));
	//console.log("adresses : " + rep);
   address = address+rep;
   res.add(rep.getJSONObject("0"));
   //res.add(rep);
 }

  console.log("Adresse  : " + address);
  o.getField("nomRue").setValue(res.get(0));
  o.save(); 
(David AZOULAY) #13

Franchement, vous exagérez… rep.getJSONObject("0").getString("adresse")

En cherchant 30 secondes sur Google on trouve 50 tutoriels qui expliquent comment marche la lib org.json

#14

Merci @david je n’exagère pas c’est seulement question de réflexe et j’ai été concentrée sur la doc.
encore une autrefois je vous remercie.

(David AZOULAY) #15

Ce forum est un forum dédié à Simplicité.

Les questions qui ne concernent pas directement Simplicité comme “Comment on parse du JSON en Java” sont à poster sur des forums de développement généralistes genre StackOverflow

#16

ça marche, je vous remercie.