我应该返回电子邮件字符串还是数组?

问题描述 投票:0回答:1

我正在使用 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 architecture software-design solid-principles
1个回答
0
投票

两种解决方案都有效。我认为没有最佳实践,因此这仅取决于您的用例。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.