Skip to content

REST API

Lorenzo Natali edited this page Jan 7, 2020 · 22 revisions

/data

  • /data/{id} PUT GET DELETE
  • /data/{id}/raw GET
    • param decode: (optional) decodes the raw content before returning it. Available values:
      • base64: decode the whole blob as a base64 encoded string an return binary data
      • datauri: check the format of the data URI, decodes it an returns the decoded data with the proper Content-type header.

/resources

  • /resources POST GET
  • /resources/resource/{id}[?full=true] PUT GET DELETE
    (query param full in GET method also returns attached storeddata)
  • /resources/search POST GET
  • /resources/search/{namelike} GET
  • /resources/search/list POST GET
  • /resources/count/{namelike} GET
  • /resources/resource/{id}/attributes GET
  • /resources/resource/{id}/attributes/{name} GET
  • /resources/resource/{id}/attributes/{name} PUT Replaces or creates an attribute
{
	"restAttribute": {
		"name": "test",
		"value": "MyTest1"
	}
}
  • /resources/resource/{id}/attributes/{name}/{value} PUT Replaces or creates an attribute of STRING
  • /resources/resource/{id}/attributes/{name}/{value}/{type} PUT Replaces or creates an attribute of a given type. Type = STRING | NUMBER | DATE

/categories

  • /categories POST GET
  • /categories/category/{id} PUT GET DELETE
  • /categories/count/{namelike} GET

/users

  • /users/ POST
  • /users/user/{id} PUT
  • /users/user/{id} DELETE
  • /users/user/{id} GET
  • /users/search/{name}[?includeAttributes=false] GET
  • /users/ GET (get all with paging)
  • /users/count/{nameLike} GET
  • /users/user/details GET (current user)
  • /users/search/list/{nameLike} GET

/usergroups

(Admin only, other users will get empty responses)

  • /usergroups/ POST (Insert a UserGroup)
  • /usergroups/group/{id} DELETE (delete an UserGroup)
  • /usergroups/group/{id} GET (get an UserGroup)
  • /usergroups/group/name/{name} GET (search an UserGroup using its name)
  • /usergroups/group/{userid}/{groupid} POST (assign a usergroup to a user)
  • /usergroups/group/{userid}/{groupid} DELETE (remove the usergroup association to a User)
  • /usergroups/ GET (get all UserGroup with paging)
  • /usergroups/update_security_rules/{groupId}/{canRead}/{canWrite} PUT (change the grants for a group on a set of resources)

/misc

These calls simplify some client side operations, avoiding the use of XML filters to be POSTed and receiving all the needed params in the URL path.

  • /misc/category/name/{cname}/resource/name/{rname} GET
    Get the full resource, completed with its data. May be computational and network heavy.
    Results:

    • 200 OK: one resource found
    • 404 NOT FOUND: no matching resource found
    • 409 CONFLICT: too many matching resources found
    • 500: other errors
  • /misc/category/name/{cname}/resource/name/{rname}/data GET
    Get the resource data. May be computational and network heavy.
    Results:

    • 200 OK: one resource found
    • 404 NOT FOUND: no matching resource found
    • 409 CONFLICT: too many matching resources found
    • 500: other errors
  • /misc/category/name/{cname}/resources GET
    Get the list of resources belonging to the Category with name cname.

    Results:

    • 200 OK: one or more resources
    • 404 NOT FOUND: no matching resource found
    • 500: other errors
  • /misc/getdata?categoryname={cname}&resourcename={rname}

/extjs

Operations mainly used by a JS frontend.

  • /extjs/search/{nameLike} GET
  • /extjs/search/category/{categoryName} GET
  • /extjs/search/category/{categoryName}/{resourceNameLike} GET
  • /extjs/search/category/{categoryName}/{resourceNameLike}/{extraAttributes} GET
  • /extjs/search/list GET
  • /extjs/search/users/{nameLike} GET
  • /extjs/search/groups/{nameLike} GET
  • /extjs/resource/{id} GET retrieve a ShortResource (basic resource info + auth info)

/backup

  • /backup/full GET
    Not implemented yet.
  • /backup/full PUT
    Not implemented yet.
  • /backup/quick GET
    Return an XML document containing information about categories, resources, storedData.
    No info about users or authorization is returned.
  • /backup/quick PUT
    Restore the info from an XML doc got with the GET method.
    • All existing categories and resources will be deleted.
    • Categories, resources and storeddata are created from the the XML document.
    • Users will not be modified. Security rules will not be added.
    • IDs are not preserved. Creation dates are recreated.
    • Returns the ok string if the procedure completed successfully.

/session

  • /session/user/{sessionId} GET
    Gets the User object associated to the given sessionId (if it exists).
  • /session/username/{sessionId} GET
    Gets the username associated to the given sessionId (if it exists).
  • /session/ PUT
    Creates a new session for the User
  • /session/login POST
    Creates a new session for the User
    Example response:
    {"access_token":"f39ad0f2-a780-444e-bddb-af0b738d9aff","expires":86400,"refresh_token":"4d03b727-b953-472f-b283-b60f6d4e572e","token_type":"bearer"}
  • /session/refresh/{sessionId}/{refreshToken} POST
    Refresh the session token
  • /session/{sessionId} DELETE
    Removes the given session.
  • /session/ DELETE
    Removes all sessions. (Admin only)