我应该返回字符串还是数组的电子邮件?[关闭]

Should I return string or array of emails? [closed]

提问人:Ajit Hegde 提问时间:11/15/2023 更新时间:11/16/2023 访问量:78

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章用事实和引文来回答。

6天前关闭。

我正在使用 JSON API 资源创建一个 Rails 应用程序。它有雇主和客户。雇主模型具有名称、网站和支持电子邮件作为属性。电子邮件使用 JSON 序列化程序进行存储。

serialize :support_emails, JSON

为了保存支持电子邮件,我在雇主模型中添加了以下方法

def support_emails=(data)
    self[:support_emails] = data&.split(',')&.map { |email| email.strip.downcase }&.uniq
end

支持电子邮件将在文本框中以逗号分隔的字符串形式输入。

在雇主资源中,我将support_emails作为字符串返回

def support_emails
    model.support_emails&.join(', ')
end

在这里,我和我的同事有不同的想法。我的同事说,我们应该按原样归还support_emails。即数组格式。因为显示和读取应该在 UI 级别完成。因此,从数组转换为字符串的逻辑应该在 UI 级别,而不是在资源级别。

我的思维过程是这样的:我从文本框中获取support_emails作为逗号分隔的字符串。因此,服务器应在收到数据时返回数据。

那么,在这种情况下,正确的方法应该是什么?

Ruby-on-Rails 架构 软件设计 Solid-Principles

评论

0赞 jaco0646 11/15/2023
考虑内容协商

答:

1赞 tonystrawberry 11/16/2023 #1

这两种解决方案都是有效的。我不认为有最佳实践,所以它只取决于你的用例。

查询 API 后,邮件应该如何显示在前端?

如果它们将“单独”显示,那么以数组格式发回数据是合理的。 如果您需要在文本框中显示电子邮件,就像一开始发送时一样,那么将电子邮件作为字符串发送是有意义的。

顺便说一句,您不通过 API 将电子邮件作为数组(见下图)发送,而不是发送原始字符串并在后端进行解析,是否有特殊原因?

enter image description here