AWS API网关中的请求路径设置似乎区分大小写。 谁能建议任何解决方案以使请求路径不区分大小写
例如: https://api-gw.some-domain/health可以访问,而 https://api-gw.some-domain/Health无法访问。 (404)
答案 0 :(得分:1)
不幸的是,与大多数AWS产品一样,API网关在设计上也区分大小写。
因此,您有两个选择:
使用CloudFront和Lambda @ Edge来重写您的请求(这涉及很多,但是可以在这里找到一个不错的教程:https://linuxacademy.com/howtoguides/posts/show/topic/19955-url-rewriting-in-aws-cloudfront)
使用BasePath mapping和Proxy Resource,以便您可以有一个lambda来接收 all 请求,然后根据需要分派/响应。
我建议使用CloudFront方法,因为它更便宜且易于维护。但是,对于小型API,您可能会想尝试第二种方法,特别是如果您可以将整个API托管在一个lambda中。
n.b。互联网区分大小写(大多数情况下是小写),例如:http://www.bbc.co.uk/news/world-europe-12083491与http://www.bbc.co.uk/news/world-Europe-12083491
答案 1 :(得分:0)
有第三种解决方案,而且更容易解决,但是对于生产环境来说可能有点脏。您可以添加基本路径的camelCase和PascalCase变体,因为它们是最有可能使用的变体。这就是我对单个API网关的基本路径所做的事情,并且可以正常工作。
API网关资源也区分大小写,因此上述方法是使请求路径不区分大小写的更彻底的方法,因为我的方法仅对基本路径有所帮助。