【发布时间】:2017-07-14 23:52:27
【问题描述】:
作为个人编程项目,我正在收集我大学的课程目录并将数据作为 REST API 提供。我已成功抓取所有数据并将其存储在数据库中,现在正在开发 API。
可以根据许多标准过滤课程:讲师、学院、学分、时间、日期等。
在这种情况下提供 API 的最佳方式是什么?
选项 1
提供大量 URL,例如
example.com/api/byinstructor/<instructorcode>
example.come/api/bycollege/<collegecode>
example.com/api/bycollegeandinstructor/<collegecode>/<instructorcode>
...and so on
我需要一个用于所有排列的 URL。对于我和 API 消费者来说,这似乎很麻烦,而且非常不干燥。
选项 2
仅提供主要选项的 API,例如:
example.com/api/byinstructor/<instructorcode>
example.come/api/bycollege/<collegecode>
如果消费者想要bycollegeandinstructor,他会自己进行过滤。
选项 3
用户将 JSON 字符串传递给我,我使用它来获取过滤条件
example.com/api/getcourses/<jsonstring>
jsonstring =
{
instructor:<instructorcode>,
college:<collegecode>,
...and so on
}
我想我可能还需要一个 POST 数组,而不是 Json 字符串,但这对于消费者来说似乎不直观,因为他正在获取数据。
或者还有其他我不知道的方法吗?如果第三个选项是最佳选项,您能否提供一个简短的摘要,以最好地根据可能具有可变数量值的 JSOn 字符串准备 SQL 查询?
【问题讨论】: