2017-05-24 2 views
2

J'ai mon api en cours d'exécution sur un serveur myserver.com:4567/api et je veux que chaque demande de mon application angulaire pour aller ici quand il correspond à/api/*. Je l'ai déjà mis en place en utilisant un proxy-conf.json et cela fonctionne parfaitement pour le service. Cependant, je veux tester mon application avec le karma, et il ne semble pas accepter les caractères génériques pour les proxies.Angular4 karma proxy wildcard

Comment puis-je résoudre ce sans fournir le karma chaque point final possible

Je veux ceci:

proxies: { 
    "/api/*": "http://mybackend.com:4567" 
} 

au lieu de ceci:

proxies: { 
    "/api/1": "http://mybackend.com:4567/api/1" 
    "/api/2": "http://mybackend.com:4567/api/2" 
    "/api/3": "http://mybackend.com:4567/api/3" 
    "/api/4": "http://mybackend.com:4567/api/4" 
} 

Répondre

1

Comme vous l'avez compris maintenant, Karma n'offre pas de caractères génériques pour les entrées proxy. Cependant, lorsque nous avons un regard sur la façon dont le mandatement est accompli, il s'avère que vous pouvez faux vos points d'extrémité avec un fichier par point final et une entrée proxy:

proxies: { "/api": "/base/fake-api" }

Ensuite, vous avez un dossier fake-api avec le contenu, comme ceci:

  • faux-api
    • une autre route-
      • autre-résultat-1
      • autre-résultat-2

Où je et sous-dossiers fichiers contenant les résultats que je voudrais faux de l'api. Je l'ai fait exactement dans un projet pour surmonter le même problème. Vous aurez également besoin d'un fichier d'entrée comme ceci:

files:[ ... { pattern: "fake-api/**/*", included: false, served: true, watched: false }, ... ],

(vous devrez peut-être ajuster la pathing en fonction de votre mise en page souhaitée, par exemple, j'ai mon faux-api sous mon dossier spécifications, donc toutes les pièces fake-api ci-dessus sont en fait specs/fake-api dans mon projet, mais vous obtenez l'image).

+0

Merci pour cela, c'est un peu mieux, mais idéalement je voudrais tester avec le backend réel (backend de test), et ne pas conserver une copie de chaque demande. – MrBlaise