系统设计访谈-汽车API

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

系统设计问题:

为您提供了数百万辆二手车的数据集以及有关它们的信息-里程,颜色,价格等。您必须在两天内创建一个API端点,以便用户查询数据集。

这是我给的答案:

使用关系数据库(例如PostgreSQL)来容纳数据。公开一个GET端点,该端点采用与数据集中的属性相对应的查询字符串参数,对其进行解析并使用它们来查询数据库。端点还可以跟踪查询最多的属性,并向这些属性添加索引以加快查询速度。我被问到如何处理一个范围(例如“车距为50,000 <=英里<= 100,000”的汽车),我说可以通过查询字符串参数来处理该范围,并通过GET端点将其转换为SQL查询。

Feedback

后来在反馈中被告知,这个答案“并未传达出对如何设计Web系统的深刻理解。”我希望就我的解决方案可能不足/不足或可能忽略了有关设计Web系统的某些方面提供一些见解。

[注:我从记忆中重建了答案,因此在这里可能比在采访中更清楚。

感谢您的帮助!

api-design system-design
1个回答
1
投票

就像评论中已经讨论的一样,采访者想听听有关SQL注入的知识。您可以采取一些对策来避免SQL注入。这些是(很可能不是完整的列表,但是应该提示您要寻找的内容):

  • 使用准备好的语句
  • 请注意访问限制(在数据库以及在操作系统中)
  • 验证用户输入
© www.soinside.com 2019 - 2024. All rights reserved.