JSON 来自 JIRA webhook 的负载并不总是进入 SQL 数据库
JSON Payload from JIRA webhook does not always enter into SQL database
由于字段 IssueType 和 [=30=,我在 MVC VB.net 中从 JIRA webhook 实现 Json Paylaods 时遇到了一些麻烦]JIRA 中的优先级。 JSON payload 成功进入的唯一时间是 IssueType = Bug 和 priority = major。
我认为问题在于这两个字段的 ID 不匹配。我发现当优先级为 major 时,它的 ID 为 3。当 IssueType 为 Bug 时,它的 ID 为 1。我认为这是因为在我的公司的 JIRA 应用程序只能从这两个字段中选择某些选项,例如优先级字段不能选择致命作为选项,因此永远不会选择 ID。
所以我的问题是如何在我的应用程序中正确匹配这两个字段。目前在我的 table 中,优先级 Table 如下:
ID ----- Name
2 ------ Critical
3 ------ Major
4 ------ Minor
问题类型Table如下:
ID ----- Name
1 ------ Bug
2 ------ Query
我正在像这样反序列化 Json:
Dim r As System.IO.StreamReader = New System.IO.StreamReader(HttpContext.Request.InputStream)
Dim json As String = r.ReadToEnd()
Dim iss As object = JsonConvert.DeserializeObject(Of object )(json)
System.Diagnostics.Trace.TraceError(json )
然后我使用 Entity Framework 将数据读入我的数据库,如下所示:
Dim newIssue As New IssueResultTable
newIssue.issueKey = issue.issue.key
newIssue.status = issue.issue.fields.status.name
newIssue.IssueType = issue.issue.fields.issuetype.id
newIssue.Priority = issue.issue.fields.priority.id
Using db As New GartanIssueTrackerEntities
db.IssueResultTables.Add(newIssue)
db.SaveChanges()
End Using
Catch ex As Exception
End Try
然后我在我的视图中显示此信息,但它仅适用于我上面所说的示例。在数据库中对这些字段进行排序的正确方法是什么,这有关系吗?或者它可以是任何顺序还是必须与 JIRA 字段完全相同,JIRA 字段还包括 JIRA 中的所有字段,而不仅仅是我的应用程序使用的字段,例如我是否必须将 Fatal 作为 ID 1 添加到我的 table ?
我说问题是由于 JIRA 应用程序和我的 SQL 数据库中的 ID 和列不匹配造成的,我说得对。
使用 RequestBin,我能够将 Webhook 触发到 RequestBin,我将在其中检查 Json 有效负载。检查数据后,我必须更改列并添加额外的列,以便我的应用程序能够成功获得我需要的所有数据。
如果要成功检索它们,您要使用的 Jira 中的 ID 必须与数据库中的 ID 匹配。
由于字段 IssueType 和 [=30=,我在 MVC VB.net 中从 JIRA webhook 实现 Json Paylaods 时遇到了一些麻烦]JIRA 中的优先级。 JSON payload 成功进入的唯一时间是 IssueType = Bug 和 priority = major。
我认为问题在于这两个字段的 ID 不匹配。我发现当优先级为 major 时,它的 ID 为 3。当 IssueType 为 Bug 时,它的 ID 为 1。我认为这是因为在我的公司的 JIRA 应用程序只能从这两个字段中选择某些选项,例如优先级字段不能选择致命作为选项,因此永远不会选择 ID。
所以我的问题是如何在我的应用程序中正确匹配这两个字段。目前在我的 table 中,优先级 Table 如下:
ID ----- Name
2 ------ Critical
3 ------ Major
4 ------ Minor
问题类型Table如下:
ID ----- Name
1 ------ Bug
2 ------ Query
我正在像这样反序列化 Json:
Dim r As System.IO.StreamReader = New System.IO.StreamReader(HttpContext.Request.InputStream)
Dim json As String = r.ReadToEnd()
Dim iss As object = JsonConvert.DeserializeObject(Of object )(json)
System.Diagnostics.Trace.TraceError(json )
然后我使用 Entity Framework 将数据读入我的数据库,如下所示:
Dim newIssue As New IssueResultTable
newIssue.issueKey = issue.issue.key
newIssue.status = issue.issue.fields.status.name
newIssue.IssueType = issue.issue.fields.issuetype.id
newIssue.Priority = issue.issue.fields.priority.id
Using db As New GartanIssueTrackerEntities
db.IssueResultTables.Add(newIssue)
db.SaveChanges()
End Using
Catch ex As Exception
End Try
然后我在我的视图中显示此信息,但它仅适用于我上面所说的示例。在数据库中对这些字段进行排序的正确方法是什么,这有关系吗?或者它可以是任何顺序还是必须与 JIRA 字段完全相同,JIRA 字段还包括 JIRA 中的所有字段,而不仅仅是我的应用程序使用的字段,例如我是否必须将 Fatal 作为 ID 1 添加到我的 table ?
我说问题是由于 JIRA 应用程序和我的 SQL 数据库中的 ID 和列不匹配造成的,我说得对。
使用 RequestBin,我能够将 Webhook 触发到 RequestBin,我将在其中检查 Json 有效负载。检查数据后,我必须更改列并添加额外的列,以便我的应用程序能够成功获得我需要的所有数据。
如果要成功检索它们,您要使用的 Jira 中的 ID 必须与数据库中的 ID 匹配。