序列化具有相同类型(按编程方式)但具有不同“含义”和不同逻辑的相互排斥数据的最佳实践是什么?
例如,假设我们希望设计一个处理帐户恢复的API。这可以通过电子邮件或短信(这是不同的逻辑在后端)。
因此,如果我们想要将请求组合到这个API,我们可以动态地处理它,即客户端发送:
{"email":"my@email.com"}或
{"phone":"+123456789"}或者,我们设立了一个"typesafe“json,即:
{"type":"email", "value":"my@email.com"}或
{"type":"phone", "value":"+123456789"}这两种方法中哪一种被认为是更好的实践?
发布于 2018-09-15 11:26:05
这取决于您的用例,但我可以提出一些建议:
就我个人而言,我不会使用单独的" type“字段,因为电子邮件/电话属性的存在已经暗示了类型,而且处理总是相同类型的属性更容易。
然而,如果我要设计一个API,其中电子邮件或电话可以出现在一个字段中,我可能会使用URI来代替:
mailto:foo@example.org
tel:+15551234567https://stackoverflow.com/questions/52344213
复制相似问题