PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → multiples base avec webservice
multiples base avec webservice
Iniciado por arnoux, jul., 30 2020 8:03 AM - 10 respostas
Publicado em julho, 30 2020 - 8:03 AM
bonjour, j utilise un webservice pour les échanges entre mes applications. J'aimerai mutualiser les bases sur 1 même serveur afin d optimiser les coûts. Comment avoir plusieurs bases avec le même webservice ( je pensais utiliser un token)
N y a t il pas de risque de problèmes de contexte.
Merci de votre aide
Publicado em julho, 30 2020 - 2:08 PM
chaque appel à un webservice va demander une fonction particulière, ou avoir un paramètre qui est une société particulière...
Dans le code de cette fonction, il suffit de commencer par un hchangeconnexion pour se connecter à la base appropriée, c'est tout.
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em julho, 30 2020 - 3:19 PM
Bonjour,

A mon avis, il faut un Webservice par analyse plus un Webservice commun avec des tokens, donc avec une analyse distincte. C'est ce WS qui sera toujours appelé. Après il va appeler d'autres WS en fonction de paramètres passés.

Enfin, c'est ma façon de procéder.

--
Cordialement
François
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em julho, 30 2020 - 3:24 PM
Les Webservices toujours en https par SSL !

--
Cordialement
François
Publicado em julho, 31 2020 - 11:50 AM
merci de votre retour, cela ne fait pas un peu lourd de faire un changeconnexion a chaque fonction ?
Publicado em julho, 31 2020 - 4:27 PM
arnoux a écrit :
merci de votre retour, cela ne fait pas un peu lourd de faire un
changeconnexion a chaque fonction ?


D'où la réponse de François (que je valide également)

Eric
Publicado em julho, 31 2020 - 8:37 PM
un webservice rest, c'est comme une page awp (c'est comme ca que je développe les miens pour plus de controle)
Donc, à chaque APPEL d'un client, le webservice est chargé, son code de projet est exécuté et une connexion est faite à la base...

Qu'on ait une seule connexion à une seule base dans le code du projet ou 10 connexions à 10 bases, chacune dna sune fonction différente et donc avec une seule appelée pour chaque appel d'un client revient donc EXACTEMENT au même...

Avoir 10 webservice avec une seule fonction dans chaque ou 1 webservice avec 10 fonctions dedans revient aussi au même en terme de charge du serveur (ce n'est pas un selon/cas qui va faire une différence significative)

Ce genre de choix n'est donc pas une question de charge de serveur ou d'optimisation, mais une question d'organisation, et la seule chose importante à considérer est de savoir si on est OK pour interrompre TOUT LE MONDE chaque fois qu'on a besoin de modifier UNE des fonctions... So oio, pas de problème, un seul webservice avec une seule base est ok.

Si non, il vaut mieux séparer les bases de données et les webservices de manière à n'interrompre que les gens concernés quand on fait une mise à jour.
Publicado em agosto, 01 2020 - 9:34 AM
Merci francois, mais je ne comprends pas très bien. J ai la même analyse . J ai plusieurs client avec le meme logiciel.
Peux tu me donner plus de précisions stp.
Merci
Publicado em agosto, 01 2020 - 3:21 PM
Merci Francois mais je ne comprends pas très bien. Mes clients ont la même appli. Peux tu détailler un peu plus ton fonctionnement stp
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em agosto, 03 2020 - 10:16 AM
Bonjour arnoux

Si ma réponse n'était pas précise, c'est que tu parlais de "mes application" et de "bases". Difficile de deviner alors qu'il n'y a qu'une seule analyse. dans ce cas, c'est très simple d'écrire un Webservice et d'ouvrir une connexion vers la base désirée par hchangeconnexion comme conseillé !

--
Cordialement
François
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em agosto, 05 2020 - 11:09 AM
Hello,

Dans ce cas si je comprends bien,

Tu as plusieurs clients qui utilisent le même logiciel, tu voudrais mettre leurs bases sur le même serveur et utiliser un webservice commun a tous les clients ?

Dans ce cas, il faut lors de l'authentification du client dans tes appels Webservice (avec une ApiKey par exemple) vérifier à quelle base il appartient.

Donc, dans chaque fonction du webservice, tu inclu une Clé API propre a chaque client en paramètres.
Dans chaque fonction, au début de traitement tu vérifies la clé et sa validité puis tu fais un HchangeConnexion() sur la base qui va bien.

Coté base de données, tu pourrais avoir 2 tables :
ApiKeys : Contient les clé API
Databases : Contient les infos ce connexion a une base

ApiKey faisant référence à Database pour faire le HChangeConnexion()