我们的计划如下:
class Entity:
pass
class BigEntity(Entity):
pass
class RedEntity(Entity):
pass
在REST中表示它们的方式更好:
/entities/
的端点并将实体类型放入请求中?/entities/red/
,/entities/big/
等端点?在这种情况下如何处理所有实体的列表?答案 0 :(得分:1)
您应该选择一种让您感觉干净的解决方案。没有神奇的解决方案。
我不建议使用/entities/red/
和/entities/big/
,因为作为开发人员,您希望/entities/{id}
而不是/entities/{type}
。
您可以使用/entities?type=red
等查询参数。它也很干净,但可能在你的控制器中难以维护。
另一个解决方案可能是/red-entities/
,/big-entities/
,/entities
。它干净,易懂,易于维护。这是我更喜欢的解决方案。
在一天结束时,它真的取决于你感觉更干净和最容易理解的东西。
答案 1 :(得分:1)
REST设计主要是以类似格式的结构来描绘您的资源。根据您的API要求,您提供的两个选项都可以。
如果你有很多不同类型的实体(红色,大等),我更喜欢/entities?type=red
。为此,您的结构将类似于/entities/entity-id
如果你没有很多类型要处理(红色,大等等)并且你不打算引入更多,那么最好选择/entities/red
。对于此结构,您的实体为/entities/red/entity-red-id