-
Représentation en JSON
Bonjour,
Je remercie par avance ceux qui m'aideront à résoudre mon problème ! :)
J'ai un projet à faire dans le cadre d'un cours sur les web services.
Le projet peut se résumer comme ceci : nous devons créer un site web de vente de vêtements.
A partir de ce site on doit pouvoir appeler 3 services web différents.
Je précise que les articles mis en vente sont regroupés dans une base de données MySQL.
Mon problème est le suivant : un membre de mon groupe a développé le site en php et il attend de moi de pouvoir "connecter" (j'entends par là être capable d'appeler un service web depuis le site par exemple en envoyant en paramètre le contenu d'un champ de recherche) la page web et mes web services que ces derniers renvoient les résultats des requêtes "SELECT" effectuées sur la base de données (l'un des services web consiste à effectuer une recherche par nom donc j'ai dans l'idée d'effectuer une recherche du style SELECT * from table where nom like %nom%) sous la forme d'une représentation json.
Quelqu'un a-t-il une idée sur la manière dont je peux relativement simplement (sans installer trop de choses ou apprendre le fonctionnement de tout un framework) réaliser cela.
Si quelque chose n'est pas clair je serais ravi de répondre à vos questions. Je suis vraiment débutant dans le domaine des web services, aussi je vous prierai de m'excuser et de faire preuve de patience si j'ai pu raté certains concepts. :D
Merci encore de votre aide.
PS : j'ai vu qu'il existait une librairie Gson capable de faire des choses intéressantes, se peut-il qu'elle soit la solution à mon problème ?
-
Juste pour être sûr : tu as un site en PHP qui gère l'interface utilisateur et tu veux déployé un service web qui fera les requêtes en base de données. Tu n'as a priori aucune contrainte concernant ce service web ?
Tu peux effectivement simplement créer une servlet qui renvoie le JSON sous forme de chaîne de caractères.
Pour la manipulation de JSON en Java tu as deux ressources :
-
Bonjour Logan, merci de ta réponse.
Je n'ai a priori pas de contraintes, je sais juste que je dois assurer la sécurité de l'ensemble mais j'avais dans l'idée que du côté web service la sécurité se résumait à un mot de passe sur la base de données et que le gros de travail était surtout à faire entre le site web et le web service. Euh oui tu as bien compris le contexte :). Par contre tu me donnes une solution pour renvoyer un json sous forme d'une chaîne de caractère, moi ce que je veux c'est construire ou plutôt représenter (car Json n'est pas un objet ou une classe) le résultat de ma requête Sql au format Json. Mais en fait je ne connais pas PHP alors peut-être que ce que tu es en train de me dire c'est que dans le message qu'envoie mon web service à mon site en PHP, le contenu du message est une chaine de caractères et que c'est seulement au niveau du site que la chaine de caractères peut-être représentée en Json ?
Si ce n'est pas encore parfaitement clair n'hésite pas. Ne serait-ce que parce que chaque question que tu me poses, je devrai en tant que débutant me la poser aussi :).
-
Le JSON ce n'est ni plus, ni moins qu'une chaîne de caractères. A travers un service Web tu peux échanger tout type de données, dont une chaîne de caractères.
Ensuite c'est au consommateur (PHP ou navigateur) de pouvoir l'interpréter. Le JSON est surement l'un des formats les plus simples à parser. Et c'est beaucoup plus simple à mettre en place que SOAP.
Lorsque l'on met en place un service, il faut simplement se mettre d'accord sur le protocole (ex : HTTP) et le format (ex : JSON, XML, Protocol Buffer, Avro, Thrift, CSV, etc.).
du JSON, ce n'est ni plus ni moins qu'une map. Créer une map à partir d'un resultset n'a rien de bien compliquer et ca existe même déjà (ex : JdbcTemplate.queryForList)
-
Très bien je vais essayer de faire cela alors ! Merci beaucoup de ta réponse et je marque la discussion comme résolue en attendant de voir si je m'en sors :).