【发布时间】:2015-03-05 23:53:25
【问题描述】:
我正在从事一个从多个不同来源接收数据 (json) 的项目。每个来源都以不同的格式返回 json,但所有服务都属于同一类别,即来自 Jira 的问题和来自 PivotalTracker 的故事都具有相同的核心信息。
我正在寻找一种方法来尽可能地将其标准化,以便将来可以添加其他服务和格式。现在我正在分别处理每种响应类型(Jira、PivotalTracker)并对每个响应单独采取行动。
到目前为止,我认为每个服务都需要一个解析器,即 JiraIssueParser、PivotalTrackerStoryParser 等,它将响应转换为一种通用格式,一种方法可以使用该格式继续发布,而不是为每个服务提供方法做接收/解析/发布。
类似这样的格式:
{
issue: {
title: ,
description: ,
assignee: ,
comments: {
1: {
id: ,
title: ,
body:
}
time_entries: {
1: {
id: ,
time: ,
date:
}
}
}
}
我想在某处定义通用模式,以便每个解析器的输出始终相同。我认为这可以通过 YAML 文件来完成,但我不确定如何去做,以及如何在解析器中使用它。
我将非常感谢有关如何执行此操作的一些建议。也许这是一个非常愚蠢的问题,我应该只从每个解析器输出上述格式,但我认为有某种强制/验证的格式是有意义的。
感谢您的建议,如果有人有任何想法,我愿意为此采取新的方向。提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby json parsing