API Gateway [message Not Found]

0

Hi there,

I have API Gateway with HTTP integration pointing to an external webservice. Currently, we can hit the webservice directly by using its IP address to retrieve various json files. Sample requests are: http://xxx.xxx.xxx.xxx/req.json http://xxx.xxx.xxx.xxx/req2.json http://xxx.xxx.xxx.xxx/req3.json

However, when we try to hit the API Gateway, we get {"message":"Not Found"} When we looked at the internal logs of the webservice, we noticed that requests from the API Gateway aren't hitting our webservice. We don't have any restrictions on the firewall as we're using the same endpoint for other services hosted in Azure.

Can you please advise what could be the problem?

已提问 1 年前10348 查看次数
3 回答
4
已接受的回答

Hi, since you didn't create any stage, that means that you're the default stage '$default'. The route that you configured isn't correct and you need to set the route to $default and add the integration to your webservice endpoint like http://webservice_url

To rectify this, first delete all the existing routes and then follow these steps:

  1. Go to your API Gateway and select Route
  2. Click Create
  3. Leave the Any method as is and type in the path $default without a leading slash.
  4. Click on Attach integration and select your webservice endpoint

Eventually, this is how it should look like:

Routes:

Enter image description here

Integrations:

Enter image description here

profile pictureAWS
mml
已回答 1 年前
profile pictureAWS
专家
已审核 1 年前
0

Hi,

{"message":"Not Found"} is technically an HTTP 404 status code. It looks like the API Gateway routing isn't set correctly, meaning that you're trying to fetch an item that doesn't exist in the requested path or you're using incorrect path in the requested URL.

Can you provide some details on what the API gateway routing and stages look like?

Also what's the URL path that you're using when hitting the API gateway?

profile pictureAWS
mml
已回答 1 年前
  • Hello

    When we created the API Gateway we didn't specify any stage. It was left to AWS to decide which stage to be used.

    As for routes, we tried using the following and none of them worked.

    / GET / ANY {proxy+}

    the URL that we're using on our clients is:

    https://api_gateway_url/req11.json

    In our testing we used Postman and Curl and both are showing the same result.

0
  • This can also happen if you have "Default endpoint" set to Disabled and are not using a custom domain to access the API. Disabled default endpoint
  • I also later had this happen from my backend rerouting to add an ending slash to my route and API Gateway treating that as a separate endpoint... This was hard to notice it was even happening. Best fix for me was to stop the reroute on my backend.
已回答 2 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则