设计类型的宁静方式。

时间:2016-10-14 22:59:25

标签: rest

我们的计划如下:

class Entity: 
    pass

class BigEntity(Entity):
    pass

class RedEntity(Entity):
    pass

在REST中表示它们的方式更好:

  1. 创建类似/entities/的端点并将实体类型放入请求中?
  2. 创建/entities/red//entities/big/等端点?在这种情况下如何处理所有实体的列表?

2 个答案:

答案 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