You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Syncope's REST API has changed from version <<placeholder>> to <<placeholder>>.

This page shall give you an overview of old and new REST API. These changes will only affect REST URLs, content models have not been changed.

Main focus on redesign REST interface was:

  1. applying RESTful Best Practices
    • use HTTP operations instead of URL encoded operation names
    • GET does not modify any object (read-only safety operation)
    • PUT and DELETE are idempotent operations
  2. use URL parameters for search and filter restrictions

Role Interface

CRUD operations:

Old URL

New URL

Comment

POST /role/create

POST /roles/

Creates a new (root) role. (Returns URL to new role definition?)

POST /role/create

POST /roles/{parentRoleId}

Creates a new (child) role. (Returns URL to new role definition?)

GET /role/list

GET /roles

Returns a list of all known roles

GET /role/read/{roleId}

GET /roles/{roleId}

Returns a single role definition matching the provided roleID

GET /role/selfRead/{roleId}

GET /roles/{roleId}

Authorization mechanisms will be independent of URL

GET /role/parent/{roleId}

GET /roles/{roleId}/parent

Returns a single parent role definition (if available)

GET /role/children/{roleId}

GET /roles/{roleId}/children

Returns a list of children role definitions

POST /role/update

PUT /roles/{roleId}

Updates role.

GET /role/delete/{roleId}

DELETE /roles/{roleId}

Deletes role.

User Interface

CRUD operations:

Old URL

New URL

Comment

POST /user/create

POST /user/

Creates a new user. (Returns URL to new user definition?)

GET /user/list

GET /user

Returns a list of all known users

GET /user/list/{page}/{size}

GET /user?page={page}&size={size}

Returns a list of known users matching page/size conditions

GET /user/read/{userId}

GET /user/{userId}

Returns a single user matching the provided userId

GET /user/readByUsername/{username}

GET /user?uname={username}

Returns a single user matching the provided username

POST /user/search

POST /user

Returns a list of user matching the provided search conditions.

POST /user/search/{page}/{size}

POST /user?page={page}&size={size}

Returns a list of user matching the provided search and page/size conditions.

GET /user/count

GET /user/count

Returns a number of existing users.

POST /user/search/count

POST /user/count

Returns a number of user matching the provided search conditions.

GET /user/verifyPassword/{username}

GET /user?uname={username}&pw={password}

Returns user if username and password match with an existing account.

POST /user/update

PUT /user/{userId}

Updates user.

GET /user/delete/{userId}

DELETE /user/{userId}

Deletes user.

GET /deleteByUsername/{username}

<<removed>>

Please use 'GET /user?uname={username}' to discover userId and then use 'DELETE /user/{userId}' to delete user.

Account status:

Old URL

New URL

Comment

GET /user/activate/{userId}

PUT /user/{userId}/status/active

Enables a user account.

GET /user/activateByUsername/{username}

<<removed>>

Please use 'GET /user?uname={username}' to discover userId and then use 'PUT /user/{userId}/status/active' to enable user account.

GET /user/reactivate/{userId}

PUT /user/{userId}/status/active

Reactivates a user account.

GET /user/reactivateByUsername/{username}

<<removed>>

Please use 'GET /user?uname={username}' to discover userId and then use 'PUT /user/{userId}/status/active' to reactivate user account.

GET /user/suspend/{userId}

DELETE /user/{userId}/status/active

Disables a user account.

<<none>>

GET /user/{userId}/status/active

Returns HTTP-Status-Code 204 (200?) if user is enabled. Returns HTTP-Status-Code 404 if user is disabled.

GET /user/suspendByUsername/{username}

<<removed>>

Please use 'GET /user?uname={username}' to discover userId and then use 'DELETE /user/{userId}/status/active' to disable user account.

Workflow actions: TODO: Is this a good design decision? Should these activities be moved to WorkflowController?

Old URL

New URL

Comment

GET /user/workflow/form/list

GET /user/workflow/form

Returns a list of user workflow forms.

GET /user/workflow/form/{userId}

GET /user/{userId}/workflow/form

Returns a (single) workflow form assigned to user.

POST /user/workflow/form/submit

POST /user/workflow/form

Submittes a form to a user workflow.

POST /user/execute/workflow/{taskId}

POST /user/workflow/task/{taskId}/execute

Executes workflow task on user.

GET /workflow/form/claim/{taskId}

POST /user/workflow/task/{taskId}/claim

Claims workflow task for authenticated (session) user.

  • No labels