2016-05-13 15 views
1

Hallo, ich fragte mich, ob mir jemand mit dem folgenden helfen könnte. Ich versuche, ein Problem mit einem benutzerdefinierten Feld (Kontrollkästchen) zu erstellen, das ein Array ist.Ich kann kein benutzerdefiniertes Feld erstellen. JIra Rest Api

Mein Feld im Browser (wenn ich getroffen http://xxxxxxxx//rest/api/latest/issue/issueId) kommt so zusammen:

"customfield_10703":["val1","val2","val3"], 

aber wenn ich versuche, es in zu veröffentlichen Ausgabe zu erstellen, erhalte ich:

{ 
"errorMessages": [], 
"errors": { 
"customfield_10703": "Operation value must be a string" 
} 
} 

Ich sollte erwähnen, dass ich erfolgreich ein Problem schaffen verwaltet werden, wenn ich es so

"customfield_10703":"{\"name\": \"Harware setup\"}", 

kodieren Aber Das Problem ist jetzt, dass ich nicht mehr als einen Wert erstellen kann.

ps. Ich habe bereits die Verwaltungsseite überprüft und mein Feld befindet sich auf dem Standardbildschirm. Danke.

+0

["val1", "val2", "val3"] ist ein Array, kein Schlüssel/Wert-Paar. Es funktioniert, wenn Sie es als {"name": "was auch immer"} senden, weil Jira es als Schlüssel/Wert-Paar empfängt. – Webomatik

+1

Versuchen Sie "customfield_10703": (["val1", "val2", "val3"]). Join() stattdessen, auf diese Weise wird Ihr benutzerdefiniertes Feld eine Zeichenfolge anstelle eines Arrays gesendet. – Webomatik

Antwort

1

Werfen Sie einen Blick auf die "createmeta" für Ihr Projekt. Sie können sie abrufen, indem Sie eine GET-Anforderung an <your_jira_server>/rest/api/2/issue/createmeta?expand=projects.issuetypes.fields&projectIds=<project_id>

senden. Das sollte Ihnen detailliertere Informationen über das erwartete Format für die Daten in Ihrem Feld geben. Mit Kontrollkästchen, finden Sie in der Regel so etwas wie:

"customfield_10600": { 
    "required": false, 
    "schema": { 
     "type": "array", 
     "items": "option", 
     "custom": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", 
     "customId": 10600 
    }, 
    "name": "My Checkbox", 
    "key": "customfield_10600", 
    "hasDefaultValue": false, 
    "operations": [ 
     "add", 
     "set", 
     "remove" 
    ], 
    "allowedValues": [ 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10400", 
      "value": "apples", 
      "id": "10400" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10401", 
      "value": "bananas", 
      "id": "10401" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10402", 
      "value": "grapes", 
      "id": "10402" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10403", 
      "value": "kiwi", 
      "id": "10403" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10404", 
      "value": "limes", 
      "id": "10404" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10405", 
      "value": "oranges", 
      "id": "10405" 
     }, 
     { 
      "self": "<your_jira_server>/rest/api/2/customFieldOption/10406", 
      "value": "pears", 
      "id": "10406" 
     } 
    ] 
} 

Wenn Sie es zurück zu JIRA senden, erwartet es eine Reihe von option Typen. Für Optionen sollten Sie entweder ein {"name": value} oder {"id": id} JSON-Objekt verwenden können (ich habe nur den ID-Ansatz verwendet). Sie sollten den Wert oder die ID aus der Liste der zulässigen Werte verwenden.

Wenn Sie mehr als eins festlegen möchten, müssen Sie ein Array dieser Optionsobjekte senden.

Verwandte Themen