GoodData: Как да създадете проект чрез API?

Можете да създадете нов проект в GoodData с помощта на API: http://docs.gooddata.apiary.io/#project

Понякога, т.е. когато създавате проект от шаблон, създаването на проекта не е синхронно. Когато използвам проекта, преди да е готов, получавам грешки като 403 и 409.

Какви са възможните състояния на проекта (освен ENABLED)? Какъв е препоръчителният начин за създаване на проект (може би анкета за определено състояние)? Какви са състоянията на грешки и как да се справят с тях? Примерен код би бил полезен.


person pcv    schedule 25.03.2014    source източник


Отговори (3)


да, най-добрият начин е да анкетирате състоянието на проекта.

проект може да има тези състояния.

„ПОДГОТВЯНЕ“ | „ПОДГОТВЕН“ | „ЗАРЕЖДАНЕ“ | „АКТИВИРАН“ | „ЗАБОЕН“ | „ИЗТРИТО“ | „АРХИВИРАН“,

Мога да създам пример за вас, какъв е предпочитаният от вас език за него?

Иржи Симон

Поддръжка на GoodData

person Jiri Simon    schedule 26.03.2014

Бих ви предложил да използвате ruby ​​cookbook за създаване на нови проекти. Gooddata има много добри библиотеки в ruby ​​за работа с проекти

Създаване на проект с шаблон http://sdk.gooddata.com/gooddata-ruby-examples/#_creating_project_from_template

Създаване на празен проект http://sdk.gooddata.com/gooddata-ruby-examples/#_creating_empty_project

В идеалния случай бихте искали да създадете проект gooddata с помощта на инструмента cloud connect etl, както е споменато в следната връзка https://help.gooddata.com/cloudconnect/manual/gooddata-project.html

person Amogh Huilgol    schedule 17.07.2018

тук можете да видите наистина прост пример в python.

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"
person Jiri Simon    schedule 26.03.2014