Menu
EtoileAbonnementRSS
jeuxvideo.com  /  Tous les forums  /  Forum principal Informatique  /  Forum Création de sites web  / 

Topic Appel d'une api docker avec axios

Sujet : Appel d'une api docker avec axios

1
20_cent_2017
20_cent_2017
MP
14 octobre 2019 à 07:06:44

Bonjour, le nom d'un service docker en url avec axios ne semble pas fonctionner avec axios sur une app servie par node sous docker ( alors que ça marche bien avec Symfony et mysql) .
Quelqu'un aurait il une piste ?

TidoDaWiseOlMan
TidoDaWiseOlMan
MP
14 octobre 2019 à 12:53:53

Tu peux développer ? :-(

20_cent_2017
20_cent_2017
MP
14 octobre 2019 à 13:23:13

En gros j'ai une image appelé web (nginx) qui sert mon api Symfony
Sur mon image node j'ai une app en vuejs.
En dev j'utilise axios avec comme base url localhost et le port de web.
Pas de soucis ça marche.

Via mon image node j'aimerais pouvoir utiliser web:[port] en base.

Si c'est bien compris je dois build mon app dans mon image node ?

SecEtPasNerveux
SecEtPasNerveux
MP
14 octobre 2019 à 20:43:17

T'exposes le port que tu veux pour ton API sur le docker et tu fais tes call sur ip:port

D'où l'intêret des environnements, un de dev, un de prod (plus si affinités) pour avoir un truc modulable. Si t'as mit tous les liens des calls api en dur ça va être relou

deepblue
deepblue
MP
16 octobre 2019 à 15:33:17

C'est pas juste un problème de requêtes cross-origin ? Autrement dit, tu accèderais à ton frontend vuejs via http://foobar et tu tentes d'appeler une API sur http://web coté client et ton navigateur bloquerait la requête ?

lisarael
lisarael
MP
16 octobre 2019 à 20:34:12

Tu dois utiliser le système de network de docker, et faire en sorte que tes containers fassent partie du même network, ce qui te permettra définir un hostname pour chaque container, de les exposer à chacun d'entre eux.

20_cent_2017
20_cent_2017
MP
16 octobre 2019 à 20:41:10

Le 16 octobre 2019 à 15:33:17 deepblue a écrit :
C'est pas juste un problème de requêtes cross-origin ? Autrement dit, tu accèderais à ton frontend vuejs via http://foobar et tu tentes d'appeler une API sur http://web coté client et ton navigateur bloquerait la requête ?

Exactement ça....
J'ai bien définis un network interne par contre la je vois pas trop pour la définition du host...

J'ai réussi à pallier le problème avec une image de reverse proxy mais le résultat en preprod est pas top.

deepblue
deepblue
MP
17 octobre 2019 à 10:25:19

Je pense le problème est coté client (sécurité) et pas du coté des containers car la résolution de nom fonctionne coté serveur (cf la remarque avec Symfony et MySQL). Je ferais en sorte que le serveur web de "web" ajoute une entête "Access-Control-Allow-Origin: https://foobar" dans ses réponses.

Message édité le 17 octobre 2019 à 10:27:02 par deepblue
1
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

Boutique
Pokémon Epée Amazon 44,49€
Luigi's Mansion 3 Amazon 44,49€
Pokémon Bouclier Amazon 59,40€