如何创建一个新的项目,并使用REST API在强化ssc中提交它



我正试图使用RESTapi在defense中创建一个新项目,到目前为止,我已经能够创建应用程序和版本,但我无法向其添加属性并提交它。这是我迄今为止的代码。这是我用来提交的脚本。

import requests
headers = {
'accept': 'application/json',
'Authorization': 'FortifyToken MmRjODVjZjctOWE2Zi00NGQxLWFkZTAtZmE2ZjUxZmZiYmU1',
'Content-Type': 'application/json',
}
json_data={
"requests": [
{
"uri": "http://localhost:8080/ssc/api/v1/projectVersions/6491/attributes",
"httpVerb": "PUT",
"postData": [
{
"attributeDefinitionId": 1,
"values": [
{
"guid": "High"
}
]
},
{
"guid":"DevPhase",
"attributeDefinitionId":"2",
"values": [
{
"guid":"Active"
}
]
} ,
{
"guid":"Accessibility",
"attributeDefinitionId":"3",
"values": [
{"guid":"externalpublicnetwork"}
]
},
{
"guid":"DevStrategy",
"attributeDefinitionId":"4",
"values": [
{"guid":"Internal"}
]
}
]
},
{
"uri": "http://localhost:8080/ssc/api/v1/projectVersions/6491?hideProgress=true",
"httpVerb": "PUT",
"postData": {
"committed": "true",
}
}
]
}
response = requests.post('localhost:8080/.../bulk', headers=headers, json=json_data)
the header that I provided works fine.

这就是我犯的错误。

{u'count': 2, u'successCount': 0, u'data': [{u'request': {u'uri': u'http://shortterm-2075.rg5.emdevinfrabom.oraclevcn.com:8080/ssc/api/v1/projectVersions/6491/attributes', u'postData': u'[{"attributeDefinitionId":1,"values":[{"guid":"High"}]},{"attributeDefinitionId":"5307","guid":"DevPhase","values":[{"guid":"Active"}]},{"attributeDefinitionId":"5319","guid":"Accessibility","values":[{"guid":"externalpublicnetwork"}]},{"attributeDefinitionId":"5312","guid":"DevStrategy","values":[{"guid":"Internal"}]}]', u'httpVerb': u'PUT'}, u'responses': [{u'body': {u'errorCode': -12300, u'message': u'Missing meta data definitions.', u'responseCode': 400}, u'headers': {}, u'requestUrl': u'http://localhost:8080/ssc/api/v1/projectVersions/6491/attributes'}]}, {u'request': {u'uri': u'shortterm-2075.rg5.emdevinfrabom.oraclevcn.com:8080/.../6491, u'postData': u'{"committed":"true"}', u'httpVerb': u'PUT'}, u'responses': [{u'body': {u'errorCode': -12301, u'message': u'A required application attribute definition is missing a value: Development Phase.', u'responseCode': 400}, u'headers': {}, u'requestUrl': u'http://localhost:8080/ssc/api/v1/projectVersions/6491?hideProgress=true'}]}], u'responseCode': 200}

这是在提交";CCD_ 1";这一次是在发布到其属性A required application attribute definition is missing a value: Development Phase.', u'responseCode': 400

我浏览了许多社区论坛,找不到任何相关的解决方案。有人能帮我一下吗。

我今天得到了与我故意测试哪个设置是必要的相同的错误。您可以尝试单独使用call API而不是bulk update

在我调用https://{{YourSscUrl}}/v1/projectVersions并创建SSC版本之后,我又调用了下面的2个API:

  1. https://{{YourSscUrl}}/v1/projectVersions/{{YourNewCreatedProjectVersionID}}/attributes

  2. https://{{YourSscUrl}}/v1/projectVersions/{{YourNewCreatedProjectVersionID}}?hideProgress=true

然后我也调用了下面的API,但这并不影响错误。

https://{{YourSscUrl}}/v1/projectVersions/{{YourNewCreatedProjectVersionID}}/responsibilities

它正在为我工作:

{
"requests":[
{
"uri":"http://localhost:8080/ssc/api/v1/projectVersions/[ID]/attributes",
"httpVerb":"PUT",
"postData":[
{
"attributeDefinitionId":5,
"values":[
{
"guid":"Active"
}
],
"value":null
},
{
"attributeDefinitionId":1,
"values":[
{
"guid":"High"
}
],
"value":null
},
{
"attributeDefinitionId":6,
"values":[
{
"guid":"Customized"
}
],
"value":null
},
{
"attributeDefinitionId":7,
"values":[
{
"guid":"consoleaccess"
}
],
"value":null
}
]
},
{
"uri":"http://localhost:8080/ssc/api/v1/projectVersions/[ID]?hideProgress=true",
"httpVerb":"PUT",
"postData":{
"committed":true
}
}
]
}

最新更新