[英]Nested route in Azure Function returns 404 not found
在我的 Azure Function 中,我有多个处理 GET、PUT 和 POST API 的函数,它们都工作正常。 每个 function 都有一个 index.js 文件只处理一个 HttpMethod & 我在 hosts.json 中有一个“api”的路由前缀。 其中一个功能的 function.json 可以在下面找到
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"route": "bike/{id}/like",
"methods": [
"put"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
我面临的问题是下面的两个 PUT 请求不起作用,我收到 404 not found。 但是,当我在 vscode 中本地运行 function 并使用 Postman 检查时,这似乎有效。
http://<MyAzureFuncName>.azurewebsites.net/api/bike/63d51c0bb593aec8734638e5/like
http://<MyAzureFuncName>.azurewebsites.net/api/bike/63d51c0bb593aec8734638e5/dislike
更新 1我刚刚发现使用门户中 Azure function 上的测试/运行功能调用上述 API 有效,但当我尝试使用 Postman 时无效。任何想法为什么会这样
我也有 GET 和 PUT 的更新方法,遵循类似的签名(如下所示),两者都在本地工作,但在 Azure 上,PUT 在检查 Postman 时返回 GET 结果。这个 PUT 过载是否是混淆的原因。
http://<MyAzureFuncName>.azurewebsites.net/api/bike/63d51c0bb593aec8734638e5
更新 2
我发现如果我使用 https 而不是 http,上述所有 PUT 请求都有效。其他 POST、DELETE 和 GET 请求都适用。 这更令人费解,任何人都可以对此有所了解。
如果您能提供帮助和指导,我将不胜感激。
谢谢
由于您可以使用 https 而不是 http 到达端点,因此我假设错误是HTTP Only设置。
导航到您的 Function 应用程序,go 到设置部分中的TLS/SSL 设置(经典) ,然后将HTTPS Only切换到Off 。
说到这一部分:
我也有 GET 和 PUT 的更新方法,遵循类似的签名(如下所示),两者都在本地工作,但在 Azure 上,PUT 在检查 Postman 时返回 GET 结果。这个 PUT 过载是否是混淆的原因。
我会说在发出 PUT 请求时返回资源是正常的。 例如,如果您更新资源,您将返回包含更新信息的数据。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.