Ich habe versucht, einen neuen Fehler zu schreiben über Rast .net api durch den folgenden Code-Rallye:Rally Übriges .NET API wirft KeyNotFoundException, wenn ein neuer Defekt ohne erforderliche Feldwert Entsendung
var api = new RallyRestApi("<myusername>", "<mypassword>", "https://community.rallydev.com");
var defect = new DynamicJsonObject();
defect["Name"] = "Sample Defect";
defect["Description"] = "Test posting defect without required field value";
defect["Project"] = "https://trial.rallydev.com/slm/webservice/1.29/project/5808130051.js";
defect["SubmittedBy"] = "https://trial.rallydev.com/slm/webservice/1.29/user/5797741589.js";
defect["ScheduleState"] = "In-Progress";
defect["State"] = "Open";
CreateResult creationResult = api.Create("defect", defect);
Aber die api wirft eine seltsame Ausnahme:
System.Collections.Generic.KeyNotFoundException was unhandled
Message=The given key was not present in the dictionary.
Source=mscorlib
StackTrace:
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Rally.RestApi.DynamicJsonObject.GetMember(String name)
at Rally.RestApi.DynamicJsonObject.TryGetMember(GetMemberBinder binder, Object& result)
at CallSite.Target(Closure , CallSite , Object)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at Rally.RestApi.RallyRestApi.Create(String type, DynamicJsonObject obj)
at RallyIntegrationSample.Program.Main(String[] args) in D:\Projects\qTrace\References\Samples\RallyIntegrationSample\Program.cs:line 24
Das Problem ist, wenn ich die Trace-Protokolldatei der Rally ausgecheckt, es zeigte genau das, was in der Buchungsanfrage falsch:
Rally.RestApi Post Response:
{
"CreateResult":
{
"_rallyAPIMajor":"1",
"_rallyAPIMinor":"29",
"Errors":["Validation error: Defect.Severity should not be null"],
"Warnings":[]
}
}
Anstatt das richtige CreateResult-Objekt mit entsprechenden Fehlerinformationen in seiner Eigenschaft anzugeben, löst der Rally-Rest .Net Api eine unerwartete Ausnahme aus.
Ist das ein Fehler in Rally Rest .net API oder sollte ich irgendwelche zusätzlichen Schritte, um das CreatResult nahtlos im Falle von Fehlern von Rallye-Service zurückgegeben erhalten?
Vielen Dank für Ihre Hilfe.
Ich habe festgestellt, dass dies ein Problem ist. Es wird in der kommenden Version 1.06 der Rally Rest Api für .NET behoben werden. –
Vielen Dank @Kyle, bitte tun Sie mir einen Gefallen zu aktualisieren, wenn es Release 1.0.6 zur Verfügung steht. –
Veröffentlicht: http://developer.rallydev.com/help/rest-api-net –