系统设计面试-汽车API

时间:2019-10-02 13:02:19

标签: api-design system-design

系统设计问题:

您将获得一个包含数百万辆二手车及其相关信息(里程,颜色,价格等)的数据集。您必须在两天内创建一个API端点,以便用户查询该数据集。

这是我给的答案:

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

反馈

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

  • 使用准备好的语句
  • 注意访问限制(在数据库和操作系统中)
  • 验证用户输入