可以使用API创建GoodData一个新项目:http://docs.gooddata.apiary.io/#projectGoodData:如何通过API创建项目?
有时候,从模板创建项目时即项目创建不同步。当我在项目准备就绪之前使用该项目时,我会收到类似403和409的错误。
项目的可能状态(除ENABLED外)是什么?建立项目的建议方式是什么(可能是针对特定状态进行轮询)?什么是错误状态以及如何处理它们?代码示例会很有用。
可以使用API创建GoodData一个新项目:http://docs.gooddata.apiary.io/#projectGoodData:如何通过API创建项目?
有时候,从模板创建项目时即项目创建不同步。当我在项目准备就绪之前使用该项目时,我会收到类似403和409的错误。
项目的可能状态(除ENABLED外)是什么?建立项目的建议方式是什么(可能是针对特定状态进行轮询)?什么是错误状态以及如何处理它们?代码示例会很有用。
是最好的方法是轮询项目状态。
项目可以有这些状态。
'PREPARING'| 'PREPARED'| 'LOADING'| 'ENABLED'| 'DISABLED'| 'DELETED'| 'ARCHIVED',
我可以为你创建例子,你的首选语言是什么?
吉日西蒙
GoodData支持
在这里你可以看到蟒蛇真的很简单的例子。
from urllib2 import Request, urlopen
import Cookie
from json import dumps
import re
import ast
values = dumps({"postUserLogin":{"login":"[email protected]","password":"mypassword","remember":1}})
headers = {"Accept": "application/json", "Content-Type": "application/json"}
request = Request("https://na1.secure.gooddata.com/gdc/account/login", data=values, headers=headers)
response_body = urlopen(request)
#print response_body.read()
msg = response_body.info()
#print msg.getheaders('set-cookie')
x=msg.getheaders('set-cookie')
import re
GD_SST = re.search('GDCAuthSST(.*?);', x[1]).group()
print GD_SST
headers = {"Cookie": "$Version=0; $Path=/gdc/account", "Accept": "application/json", "Content-Type": "application/json"}
headers['Cookie'] = GD_SST
request = Request("https://na1.secure.gooddata.com/gdc/account/token", headers=headers)
response_body = urlopen(request)
#print response_body.read()
#print response_body.info()
msg = response_body.info()
#print msg.getheaders('set-cookie')
x=msg.getheaders('set-cookie')
#print x
GD_TT = re.search('GDCAuthTT(.*?);', x[0]).group()
print GD_TT
values = dumps({ "project" : {
"content" : {"guidedNavigation": 1, "driver" : "Pg", "authorizationToken" : "MYTOKEN"},
"meta" : {
"title" : "Test Project API",
"summary" : "Testing Project",
"projectTemplate" : "/projectTemplates/{templateName}/{version}"
} }
})
headers = {"Accept": "application/json", "Content-Type": "application/json"}
headers['Cookie'] = GD_TT
request = Request("https://na1.secure.gooddata.com/gdc/projects", data=values, headers=headers)
response_body = urlopen(request).read()
#project_url=response_body['uri']
project_url=ast.literal_eval(response_body)['uri']
print project_url
request = Request("https://na1.secure.gooddata.com%s" % project_url , headers=headers)
#response_body = urlopen(request).read()
#print response_body
response_body = urlopen(request).read()
print response_body
#project_details = ast.literal_eval(response_body)['project']
#project_state = project_details['content']['state']
project_state = " "
#print "project_state is %s" % project_state
while project_state != "ENABLED" or project_state != "DELETED" :
response_body = urlopen(request).read()
#print response_body
project_details = ast.literal_eval(response_body)['project']
project_state = project_details['content']['state']
print "project_state is %s" % project_state
if project_state == "DELETED":
break
if project_state == "ENABLED" :
print "project created %s" %project_ur
else:
print "something was wrong"