我构建了数百个API和Lambda,从未遇到过这样的讨论。
我总是使用代理集成,并在我的代码中解析参数,使用以下方法:
x = event['queryStringParameters']
ID = x.get("param1")
name = x.get("param2")
然而,前端工程师认为我们应该遵循推荐的命名规则,并将参数作为路径参数传递给API,就像在此链接中一样:https://restfulapi.net/resource-naming/。经过一些研究,我发现这基本上是非代理集成,我应该在API GW中配置param。尽管我在许多博客中阅读到这不是推荐的方法,但我找不到明确偏爱代理集成的AWS文档。
代理(路径参数):
http://api.example.com/device-management/managed-devices/{id}
非代理(查询字符串参数):http://api.example.com/device-management/managed-devices?param1={id}
我一直在试图说服他,我没有看到过这种用法,并且API URL在应用程序代码中使用,那么API URL的外观为什么要紧要!?请告诉我您的意见,谢谢。