0
votes

Une demande correspond à trop de points d'extrémité pour deux API Web dans Net Core 3.0

J'ai une solution faite dans .NET CORE 3.0

La solution a 2 proyects, chaque proyect est une API Web.

permet d'appeler Web API A avec le suivant contrôleur: xxx

Ce WebapI est en cours d'exécution sur localhost permet de dire le port 5001.

alors, je cours sur un autre vs2019 la même solution mais je cours le Autre API Web, B , disons qu'il fonctionne sur le port 6000

Le contrôleur est comme suit: xxx

si je Utilisez Postman pour créer un POST TO HTTPS: // localhost: 5001 / Personnes Il est évident qu'il y a plus d'un endroit où la demande peut atterrir, mais quels protecteurs moi est que, ce sont deux ports différents.

Comment puis-je prendre en compte les ports lorsque je fais un post sur / personnes ?


1 commentaires

Chaque classe Web RensQuest a un champ ou une propriété pour "port". Il fait partie intégrante de la demande en tant qu'adresse IP. Souvent, vous pouvez simplement le définir dans l'URL. Un numéro est juste généralement implicite basé sur le protocollage utilisé, mais bien sûr, il peut être écrasé.


3 Réponses :


0
votes

Chaque classe de réseau a un champ ou une propriété pour le numéro de port. Si aucun numéro n'est spécifié, un numéro de port par défaut est impliqué sur la base du protocollage. C'est là que Cette liste est disponible.

De plus, l'URL Shema vous permet de déclarer le port à utiliser, dans le cadre de la partie hôte de l'URL (même règle pour défaut):

http: // localhost: 3000 /

Cela interrogera localhost sur le port 3000, plutôt que 80 (la valeur par défaut pour HTTP est 80, avec des retombées à 8080 et 8008. HTTPS par défaut à 443).

Cela dépend donc un peu des cours que vous avez et combien de l'URL vous écrivez et / ou stockez.


0 commentaires

0
votes

Lorsque vous appelez HTTPS: // localhost: 5001 / personnes Vous n'appellez jamais jamais une API Web "A "Parce que vous avez spécifié le port.

Si vous avez appelé https: // localhost / personnes puis IIS OU Quel que soit votrehômeur que vous utilisez chercherait à voir S'il y avait une demande liée au port 443 puisque vous transmettez une demande HTTPS et acheminez le trafic vers cette application.

De même si vous avez appelé http: // localhost / personnes puis IIS ou quel que soit votrehost que vous utilisez aurait lieu Voir si une application est liée au port 80 puisque vous passez une requête HTTP unie et acheminez le trafic vers cette application.

Dans vos cas, vous disposez de 2 applications liées à des ports séparés et il n'y a pas d'ambiguïté sur laquelle une application sera appelée lorsque vous spécifiez les ports de Postman.

Si vous devez basculer les ports lors de la prise d'appel à ces API's, vous devez définir le port dans votre code client au moment où vous effectuez l'appel. Si vous négligez de spécifier le port, il appartiendra à votre hébergeur Web de décider quelle application obtiendra le trafic sur la base de laquelle l'application que vous avez liée au port 443.


0 commentaires

0
votes

Dans ce cas, le problème était que l'API Web B avait une dépendance avec Web API A , je l'ai fait pour utiliser les mêmes classes de domaine , ce qui serait une bonne idée de les avoir dans un proyect différent. Quoi qu'il en soit, lorsque vous exécutez l'API Web avec la dépendance, elle exécute également l'autre contrôleur et cela provoque le problème.


1 commentaires

Pour partager classes de domaine , vous pouvez créer une nouvelle classe distincte au lieu de référencer le projet A directement.