Python platform api crud

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsPython platform api crud

<source lang='python'> payload = '{\"resource\":[{\"name\":\"test\",\"complete\":false}]}'

options = {} options['headers'] = {} options['headers']['X-DreamFactory-Api-Key'] = platform.session.api_key options['headers']['X-DreamFactory-Session-Token'] = platform.session.session_token

  1. create a record using internal URL

url = 'db/_table/todo' result = platform.api.post(url, payload) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

elif 'resource' not in jsonData or len(jsonData.resource) != 1:

   raise ValueError('Unexpected response from url = ' + url)

print 'internal URL created ' + str(len(jsonData.resource)) + ' records'

id1 = jsonData.resource[0].id

  1. create a record using external URL

url = 'http://localhost:8080/api/v2/db/_table/todo' result = platform.api.post(url, payload, options) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

elif 'resource' not in jsonData or len(jsonData.resource) != 1:

   raise ValueError('Unexpected response from url = ' + url)

print 'external URL created ' + str(len(jsonData.resource)) + ' records'

id2 = jsonData.resource[0].id

  1. get records using internal URL

url = 'db/_table/todo' result = platform.api.get(url) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

elif 'resource' not in jsonData:

   raise ValueError('Unexpected response from url = ' + url)

print 'internal URL found ' + str(len(jsonData.resource)) + ' records'

  1. get records using external URL

url = 'http://localhost:8080/api/v2/db/_table/todo' result = platform.api.get(url, options) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

elif 'resource' not in jsonData:

   raise ValueError('Unexpected response from url = ' + url)

print 'external URL found ' + str(len(jsonData.resource)) + ' records'

  1. update a record using internal URL

url = 'db/_table/todo/' + str(id1) result = platform.api.patch(url, payload) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

print 'internal URL updated 1 record'

  1. update a record using external URL

url = 'http://localhost:8080/api/v2/db/_table/todo/' + str(id2) result = platform.api.patch(url, payload, options) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

print 'external URL updated 1 record'

  1. delete a record using internal URL

url = 'db/_table/todo/' + str(id1) result = platform.api.delete(url) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

print 'internal URL deleted 1 record'

  1. delete a record using external URL

url = 'http://localhost:8080/api/v2/db/_table/todo/' + str(id2) result = platform.api.delete(url, None, options) data = result.read() jsonData = bunchify(json.loads(data)) if 'error' in jsonData:

   raise ValueError(jsonData.error.message)

print 'external URL deleted 1 record'

return {'result': 'ok'} </source>