Azure API 管理通配符操作返回 404

问题描述 投票:0回答:1

我在 APIM 中创建了 Teamtailor API 的通配符操作 https://api.teamtailor.com/v1 当我发出请求时,它会调用正确的后端端点https://api.teamtailor.com/v1/jobs,但它会返回 404,就像您导航到此网址https://api.teamtailor.com/v1 一样.

请参阅下面进一步的请求跟踪。

入境 (0.345 毫秒)

api-inspector (0.289 ms)
{
    "request": {
        "scheme": {
            "received": "https",
            "original": "https"
        },
        "method": "GET",
        "url": "https://x-api-dev.azure-api.net/teamtailor/jobs",
        "headers": [
            {
                "name": "X-Forwarded-For",
                "value": "176.22.116.20,20.121.82.216"
            },
            {
                "name": "X-Forwarded-Host",
                "value": "api.dev.x.com"
            },
            {
                "name": "X-Forwarded-Proto",
                "value": "https"
            },
            {
                "name": "X-Azure-FDID",
                "value": "5c75cd49-4ac3-41f2-820c-c58d82b39b5d"
            },
            {
                "name": "sec-ch-ua",
                "value": "\"Google Chrome\";v=\"123\",\"Not:A-Brand\";v=\"8\",\"Chromium\";v=\"123\""
            },
            {
                "name": "sec-ch-ua-mobile",
                "value": "?0"
            },
            {
                "name": "ocp-apim-subscription-key",
                "value": "xxxx"
            },
            {
                "name": "sec-ch-ua-platform",
                "value": "\"macOS\""
            },
            {
                "name": "Sec-Fetch-Site",
                "value": "cross-site"
            },
            {
                "name": "Sec-Fetch-Mode",
                "value": "cors"
            },
            {
                "name": "Sec-Fetch-Dest",
                "value": "empty"
            },
            {
                "name": "x-azure-ref",
                "value": "20240417T093556Z-167bd55cf6bjkc2bvfpvan0mbc0000000200000000009bgp"
            },
            {
                "name": "x-azure-clientip",
                "value": "176.22.116.20"
            },
            {
                "name": "x-azure-socketip",
                "value": "20.121.82.216"
            },
            {
                "name": "x-azure-requestchainv2",
                "value": "hops=1"
            },
            {
                "name": "Cache-Control",
                "value": "no-cache, no-store"
            },
            {
                "name": "Via",
                "value": "HTTP/1.1 Azure"
            },
            {
                "name": "Accept",
                "value": "*/*"
            },
            {
                "name": "Accept-Encoding",
                "value": "gzip,deflate,br,zstd"
            },
            {
                "name": "Accept-Language",
                "value": "da-DK,da;q=0.9,en-US;q=0.8,en;q=0.7"
            },
            {
                "name": "Host",
                "value": "x-api-dev.azure-api.net"
            },
            {
                "name": "Referer",
                "value": "https://apimanagement.hosting.portal.azure.net/"
            }
        ]
    }
}
api-inspector (0.003 ms)
{
    "configuration": {
        "api": {
            "from": "/teamtailor",
            "to": {
                "scheme": "https",
                "host": "api.teamtailor.com",
                "port": 443,
                "path": "/v1",
                "queryString": "",
                "query": {},
                "isDefaultPort": true
            },
            "version": null,
            "revision": "1"
        },
        "operation": {
            "method": "GET",
            "uriTemplate": "/*"
        },
        "user": "-",
        "product": "-"
    }
}
cors (0.028 ms)
"Origin header was missing or empty and the request was classified as not cross-domain. CORS policy was not applied."
check-header (0.008 ms)
{
    "message": "Header validated.",
    "header": {
        "name": "X-Azure-FDID",
        "value": "5c75cd49-4ac3-41f2-820c-c58d82b39b5d"
    }
}
set-header (0.012 ms)
{
    "message": "Specified value was assigned to the header (see below).",
    "header": {
        "name": "Authorization",
        "value": "Token token=xxxx"
    }
}
set-header (0.004 ms)
{
    "message": "Specified value was assigned to the header (see below).",
    "header": {
        "name": "X-Api-Version",
        "value": "20240404"
    }
}

后端 (57.634 毫秒)

forward-request (15.038 ms)
{
    "message": "Request is being forwarded to the backend service. Timeout set to 300 seconds",
    "request": {
        "method": "GET",
        "url": "https://api.teamtailor.com/v1/jobs",
        "headers": [
            {
                "name": "Host",
                "value": "api.teamtailor.com"
            },
            {
                "name": "X-Forwarded-For",
                "value": "176.22.116.20,20.121.82.216,147.243.243.107"
            },
            {
                "name": "X-Forwarded-Host",
                "value": "api.dev.x.com"
            },
            {
                "name": "X-Forwarded-Proto",
                "value": "https"
            },
            {
                "name": "X-Azure-FDID",
                "value": "5c75cd49-4ac3-41f2-820c-c58d82b39b5d"
            },
            {
                "name": "sec-ch-ua",
                "value": "\"Google Chrome\";v=\"123\",\"Not:A-Brand\";v=\"8\",\"Chromium\";v=\"123\""
            },
            {
                "name": "Authorization",
                "value": "Token token=xxxx"
            },
            {
                "name": "sec-ch-ua-mobile",
                "value": "?0"
            },
            {
                "name": "ocp-apim-subscription-key",
                "value": "xxxx"
            },
            {
                "name": "sec-ch-ua-platform",
                "value": "\"macOS\""
            },
            {
                "name": "Sec-Fetch-Site",
                "value": "cross-site"
            },
            {
                "name": "Sec-Fetch-Mode",
                "value": "cors"
            },
            {
                "name": "Sec-Fetch-Dest",
                "value": "empty"
            },
            {
                "name": "x-azure-ref",
                "value": "20240417T093556Z-167bd55cf6bjkc2bvfpvan0mbc0000000200000000009bgp"
            },
            {
                "name": "x-azure-clientip",
                "value": "176.22.116.20"
            },
            {
                "name": "x-azure-socketip",
                "value": "20.121.82.216"
            },
            {
                "name": "x-azure-requestchainv2",
                "value": "hops=1"
            },
            {
                "name": "Cache-Control",
                "value": "no-cache, no-store"
            },
            {
                "name": "Via",
                "value": "HTTP/1.1 Azure"
            },
            {
                "name": "Accept",
                "value": "*/*"
            },
            {
                "name": "Accept-Encoding",
                "value": "gzip,deflate,br,zstd"
            },
            {
                "name": "Accept-Language",
                "value": "da-DK,da;q=0.9,en-US;q=0.8,en;q=0.7"
            },
            {
                "name": "Referer",
                "value": "https://apimanagement.hosting.portal.azure.net/"
            },
            {
                "name": "X-Api-Version",
                "value": "20240404"
            },
            {
                "name": "Request-Id",
                "value": "|49c3977d-44c336475720c80d.49c3977e_"
            },
            {
                "name": "Request-Context",
                "value": "appId=cid-v1:cc1a7714-6a74-4858-9b04-8c097ae7f1f8"
            }
        ]
    }
}

forward-request (42.596 ms)
{
    "response": {
        "status": {
            "code": 404,
            "reason": "Not Found"
        },
        "headers": [
            {
                "name": "Transfer-Encoding",
                "value": "chunked"
            },
            {
                "name": "Connection",
                "value": "keep-alive"
            },
            {
                "name": "X-Frame-Options",
                "value": "SAMEORIGIN"
            },
            {
                "name": "X-XSS-Protection",
                "value": "1; mode=block"
            },
            {
                "name": "X-Content-Type-Options",
                "value": "nosniff"
            },
            {
                "name": "X-Download-Options",
                "value": "noopen"
            },
            {
                "name": "X-Permitted-Cross-Domain-Policies",
                "value": "none"
            },
            {
                "name": "Referrer-Policy",
                "value": "strict-origin-when-cross-origin"
            },
            {
                "name": "Vary",
                "value": "Accept,Origin"
            },
            {
                "name": "X-Request-Id",
                "value": "536037a4-b2da-49cc-a070-08f77ddbfd3e"
            },
            {
                "name": "X-Runtime",
                "value": "0.017596"
            },
            {
                "name": "X-Rack-Cache",
                "value": "reload"
            },
            {
                "name": "Strict-Transport-Security",
                "value": "max-age=63072000; includeSubDomains"
            },
            {
                "name": "Cache-Control",
                "value": "private"
            },
            {
                "name": "Content-Type",
                "value": "text/html; charset=utf-8"
            },
            {
                "name": "Date",
                "value": "Wed, 17 Apr 2024 09:35:56 GMT"
            },
            {
                "name": "Server",
                "value": "nginx/1.25.4"
            }
        ]
    }
}

出境 (0.994 毫秒)

transfer-response (0.994 ms)
{
    "message": "Response has been sent to the caller in full"
}
azure wso2-api-manager azure-api-management
1个回答
0
投票

发现错误。这是 X-Forwarded-Host 标头,它设置为我的域而不是 TeamTailors API。我在入站中删除了这个标头,现在它可以工作了

© www.soinside.com 2019 - 2024. All rights reserved.