关于REST API设计,我正在与一位同事进行讨论,他认为将2个(或更多)相关但不同的对象的字段合并到一个API操作中会更容易。
示例1。信用卡和银行帐户的资金来源。
我的想法是,您将为此进行2次操作/信用卡和/ bankaccount。原因是因为它们的大多数字段不同-信用卡具有用于掩码的PAN,有效期限,卡上的名称,令牌的字段;而银行帐户具有用于BSB和帐号的字段...它们都是资金来源,但是它们是不同的。
我的同事正在考虑将所有这一切与一个神物/资源合并为一个操作。我不太喜欢这种方法。如果我要发布或获取信用卡,我不需要了解任何有关银行帐户的信息,对吗?它似乎违反了SOLID原则中的SRP,但我不知道这是否适用于REST API设计。
示例2。短信和电子邮件通信。
SMS必须屏蔽。而电子邮件必须来自抄送,密件抄送,主题,正文,ishtml ...对我来说,它们应该是分开的操作...
上帝的物件/资源让我闻起来。如果只有两种类型,那可能是可以接受的(一口气),但是如果我需要添加推送通知或应用程序通知是什么呢……上帝的对象/资源将开始变得毫无用处了……>
有想法吗?
我正在寻找一些指南,但找不到任何能回答我问题的东西。