Azure静态Web应用-链接到Azure API管理(APIM)中的多个API

afdcj2ne  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(165)

我们有一个Azure Static Web App,希望从中使用大量(~10)API中的大量端点(~100)-所有端点均由Azure API Management(APIM)的单个示例公开。
如果我们简单地尝试直接从前端调用这些端点-我们会遇到CORS问题。
据我所知-正确的解决方法是链接后端api:s以供静态web应用程序使用。并且从一段时间以前开始-有了support用于APIM。太棒了!
问题是只能使用位于route /api/{operation} 的(?)api:s。
在APIM中的含义-我只能(?)使用不带url后缀的API-例如https://my-apim.azure-api.net/api/my-endpoint。静态Web应用程序可以通过https://www.my-custom-domain.com/api/my-endpoint访问它
但是在APIM中-每个APIM示例只能有一个单独的API可以有空的url后缀。那么,我如何解决从一个Azure静态网站使用多个API(由APIM公开)的问题呢?
我不希望被迫在APIM的一个巨大的API中公开所有100个端点。

ar7v8xwq

ar7v8xwq1#

我对你的问题有点困惑。添加一个APIM示例到后端会(我可能应该把“尝试”)代理任何通过<static-webapp-frontend_url>/api/*的请求到你的APIM示例中的同一个路由-即<APIM_URL>/api/*。当你添加一个API(或10,或20)时,你为那个API选择特定的API后缀,APIM会为你做反向代理。
例如,我有一个Azure Function应用程序,它在路由/products上公开了GETPOST端点,从而使API的完全限定路由www.example-azure-function-url.com/products。然后,我将此API添加到我的APIM示例中,并为其给予后缀/product-service/。如果我的APIM示例的FQDN为www.example-APIM-url.com,则公开的API'如果我随后将此APIM示例添加到FQDN为www.static-web-app-example.com的静态Web应用的后端,则我可以在www.static-web-app-example.com/api/product-service/products调用此公开的API以执行GETPOST操作。
使用这个模式,我希望您的用例能够清楚地了解如何通过APIM后端使用API。

相关问题