【发布时间】:2019-02-18 02:21:49
【问题描述】:
只是想知道在使用不同的数据格式时,关于命名 REST api 端点的每个人的意见。
API 示例
- /api/applications - 获取所有应用程序的列表
- /api/applications/{applicationId} - 获取特定的应用程序详细信息
- /api/applications/{applicationId}/topics - 获取特定应用程序的所有主题
问题
多个消费应用程序可能希望以不同格式交付数据 - 例如列表、树和可能不同的详细程度/详细程度。在 RESTful API 中表示它的最佳方式是什么?
可能的解决方案
不同的端点名称。不喜欢这样,因为它感觉很脏,混合了端点和数据类型:
- /api/applications/{applicationId}/topics
- /api/applications/{applicationId}/detailedTopics
- /api/applications/{applicationId}/topicHierarchy
子路径。不喜欢这样,因为它似乎打破了 RESTful 命名约定。我希望 /topics/{topicId}:
- /api/applications/{applicationId}/topics/details
- /api/applications/{applicationId}/topics/list
- /api/applications/{applicationId}/topics/hierarchy
查询字符串。这似乎是最好的解决方案,但我仍然不是 100% 满意:
- /api/applications/{applicationId}/topics?detail=overview
- /api/applications/{applicationId}/topics?format=list
- /api/applications/{applicationId}/topics?format=tree
很想听听您的一些想法!谢谢!
【问题讨论】:
标签: rest api api-design