Azure Web API 访问:我应该使用哪个 URL,Web 服务 URL 还是网关 URL?

Azure Web API Access: Which URL should I use, the Web Service URL or Gateway URL?

我在 Azure 中上传了一个应用服务,已经在工作 API(使用 JWT 令牌系统)。一切正常,前端网站使用 <mywebapp>.azurewebsites.net(Web 服务 URL),API 访问使用 <mywebapp>.azurewebsites.net/<api-route>

然后我阅读了有关 API 管理服务的信息,因此我在那里注册了我的 Web 应用程序。现在我可以使用门户来测试我的 API,它甚至有自己的令牌系统,但我的 JWT 令牌系统仍然有效,所以现在我需要做 2 种授权方法才能使用这个 API?我还有一个新域:<mywebapp>.azure-api.net/<api-route>(网关 URL)现在造成了混乱。

我的问题是,像我在应用服务示例中所做的那样,只使用与前端相同的 Web 应用程序和 API 可以吗?还是创建一个单独的 Web 应用程序以在 API 管理服务中使用(并使用默认令牌系统)更漂亮?

我使用本教程使用 Razor 创建了我的前端:https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/?view=aspnetcore-5.0

然后我使用本教程在其顶部添加了 API:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-5.0&tabs=visual-studio

对于您的方案,因为您只有一个 API,您可以直接从 Web 应用程序调用 API 端点并完全摆脱 APIM。我认为这里不需要 APIM。

API如果你有多个 api 并且你想将它们全部抽象在一个 URL 下,那么你的前端 Web 层就不必记住多个 API网址。

例如,如果您有 3 个不同的 API URL,那么您可以将所有内容抽象为一个 APIM URL,如下所示 -

apimurl.azure-api.net
     -- api1url.azurewebsites.net/hr
     -- api2url.azurewebsites.net/finance
     -- api3url.azurewebsites.net/payroll

那么你的网站UI就可以调用apimurl.azure-api.net/hr 要么 apimurl.azure-api.net/finance

对于您的情况,请简化并使用应用服务 URL。如果你想测试你的 API 只需使用 Swagger UI.