我要进入一个现有的应用程序,其中存在一个调用多个API的React应用程序。这些API是用.NET Core编写的,并已指示我在本地调试时通常将它们托管在IIS Express中。
我遇到麻烦的地方是,当API项目在没有静态端口的多个IIS Express实例上运行时,了解React应用程序将如何访问后端API项目。
例如,我将在React项目上单击“运行”,该项目将启动React应用程序以及可能在localhost:5888上运行的控制器。我可以使用window.host + /Controller/
从React应用程序轻松地访问控制器,它将为我解决端口问题。但是,如果我从单独的Visual Studio实例“运行”另一个API,它将托管在随机端口上,例如localhost:5889。如果我尝试使用React应用程序中的window.host + /SecondAPIMethod/
来访问该API,它将出现404错误,因为React应用程序不知道运行带有第二个API的IIS express实例的端口。
同事告诉我,Swagger是管理此问题的关键,但是我不确定如何做到。
答案 0 :(得分:1)
它不在任何随机端口上运行。端口号在项目属性中指定。在Visual Studio中进行调试时,可以通过转到项目属性->调试->应用程序URL来设置端口号。 在IIS服务器上部署Web api时,它将在配置Web api时指定的端口上运行。 现在,当您提前知道Web API(带有端口号)时,就可以对URL进行硬编码或将其放入react应用的应用设置文件中。希望这会有所帮助。