PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 27 → API REST
API REST
Iniciado por PSN974, dez., 02 2021 6:52 AM - 3 respostas
Membro registado
8 mensagems
Publicado em dezembro, 02 2021 - 6:52 AM
Bonjour,
Comment est ce que je peux faire cohabiter 2 API REST développé avec WebDev 26 sur un même serveur?
Je m'explique :
API1
https://monsite/api/api1/commande
API2
https://monsite/api/api2/commande

Quand je déploie API1 tout fonctionne bien pour lui, mais quand je déploie API2 juste derrière, tout va bien pour API2 mais API1 me répond qu'il n'existe pas de point d'entrée, alors que juste avant il fonctionnait très bien.

Du coup les 2 Webservices devant être sur un seul et même serveur, comment je dois faire puisqu'il n'y a aucun moyen de préciser au moment de la génération, le chemin a exploiter.
Petite précision API1 et API2 exploite des BDD différentes mais interagissent entre elle,API2 fait des appels a API1

Merci d'avance pour vos réponse
Membro registado
226 mensagems
Popularité : +13 (13 votes)
Publicado em dezembro, 02 2021 - 5:59 PM
Bonjour,

En mode Webservice REST, l'administrateur WebDev se fiche du nom du projet et ne se base QUE sur les URL définies dans les descriptions de Webservice, et notamment le premier dossier après le nom de domaine.

Par exemple, pour un projet qui a une description de webservice avec les URL suivantes :
- GET /api/articles
- GET /api/article/{id_article}
- POST /api/article
- etc...

Lors du déploiement sur IIS, un mappage sera créé comme ceci (dans "Mappage de gestionnaires") :
- Chemin des demandes : /api
- Module : FastCGIModule
- Exécutable : C:\WEBDEV 26\AWP\WD260Awp.exe|/WEBSERVICE_REST="REST_ECOMMERCE"

Cela veut dire que TOUS les appels qui commenceront par /api seront gérés par le projet "REST_ECOMMERCE". Si un autre webservice qui possède la même racine /api vient à être déployé sur le même serveur, cela écrasera la configuration initiale et c'est donc le second projet qui viendra gérer toutes les requêtes sur /api, même celles initialement liées au premier projet.

Pour corriger cela, deux possibilités selon moi :
- Soit s'assurer que la racine des URL est différente sur les deux projets : https://monsite/api1/api/commande et https://monsite/api2/api/commande
- Soit les déployer sur des vhosts différents, du genre : https://api1.monsite/api/commande et https://api2.monsite/api/commande
Membro registado
289 mensagems
Popularité : +20 (20 votes)
Publicado em dezembro, 02 2021 - 6:08 PM
Effectivement il faut que la racine de la ressource du point d'entrée soit différente et bien entendu Il faut aussi que le nom et le répertoire de déploiement soit différent pour chacun des ws
Membro registado
8 mensagems
Publicado em dezembro, 03 2021 - 6:31 AM
Merci pour vos réponses, en effet ça marche comme ça.
Un GROS merci a vous, je regrette juste que ce ne soit pas précisé dans la doc API REST de pcsoft, ça éviterait a beaucoup de monde de perdre du temps comme moi.