Hi All,

I have finished migrating Sharing Registry service to Custos project as a 
RESTful service. The PR can be found 
here<https://github.com/apache/airavata-custos/pull/5>.


I have added a new module to the project: custos-sharing-registry-service. This 
contains sharing-service-api and sharing-service-core.


To start the service, I am using the embedded server that comes with Spring 
boot for now. The service can be started by running Application.java found 
under org.apache.custos.sharing.service.api


This is the first step towards going from Thrift to REST for Custos APIs. I 
would follow the same semantics and approach for converting thrift APIs for 
other custos services and for developing new APIs. It will be really helpful if 
I could get a review on the APIs developed so far as early feedback would help 
me avoid any major changes later. The REST Apis for this project can be found 
in the package org.apache.custos.sharing.service.api.controllers in the 
following files:


AccessController.java

  *   DELETE 
/domains/{domainId}/entities/{entityId}/permissionTypes/{permissionTypeId}/groups
  *   DELETE 
/domains/{domainId}/entities/{entityId}/permissionTypes/{permissionTypeId}/users
  *   POST 
/domains/{domainId}/entities/{entityId}/permissionTypes/{permissionTypeId}/users
  *   POST 
/domains/{domainId}/entities/{entityId}/permissionTypes/{permissionTypeId}/groups
  *   HEAD 
/domains/{domainId}/entities/{entityId}/permissionTypes/{permissionTypeId}/users/{userId}


DomainsController.java

  *   GET /domains/{domainId}
  *   GET /domains
  *   HEAD /domains/{domainId}
  *   PUT /domains
  *   POST /domains
  *   DELETE /domains/{domainId}

EntityController.java


  *   GET /domains/{domainId}/entities/{entityId}
  *   GET 
/domains/{domainId}/entities/{entityId}/permissionType/{permissionTypeId}/groups
  *   GET 
/domains/{domainId}/entities/{entityId}/permissionType/{permissionTypeId}/directGroups
  *   GET 
/domains/{domainId}/entities/{entityId}/permissionType/{permissionTypeId}/users
  *   GET 
/domains/{domainId}/entities/{entityId}/permissionType/{permissionTypeId}/directUsers/
  *   DELETE /domains/{domainId}/entities/{entityId}
  *   GET /domains/{domainId}/entities/users/{userId}
  *   PUT /domains/{domainId}/entities
  *   HEAD /domains/{domainId}/entities/{entityId}
  *   POST /domains/{domainId}/entities


EntityTypeController.java


  *   HEAD /domains/{domainId}/entityTypes/{entityTypeId}
  *   DELETE /domains/{domainId}/entityTypes/{entityTypeId}
  *   GET /domains/{domainId}/entityTypes/{entityTypeId}
  *   GET /domains/{domainId}/entityTypes
  *   POST /domains/{domainId}/entityTypes
  *   PUT /domains/{domainId}/entityTypes


GroupController.java

  *   GET /domains/{domainId}/groups/groups
  *   POST /domains/{domainId}/groups
  *   GET /domains/{domainId}/groups/{groupId}
  *   GET /domains/{domainId}/groups/{groupId}/users
  *   POST /domains/{domainId}/groups/{groupId}/subgroups
  *   DELETE /domains/{domainId}/groups/{groupId}/subgroups/{childGroupId}
  *   PUT /domains/{domainId}/groups/{groupId}/owners/{ownerId}
  *   DELETE /domains/{domainId}/groups/{groupId}/admins
  *   GET /domains/{domainId}/groups/users/{userId}
  *   GET /domains/{domainId}/groups/{groupId}/subgroups
  *   DELETE /domains/{domainId}/groups/{groupId}/users
  *   HEAD /domains/{domainId}/groups/{groupId
  *   HEAD /domains/{domainId}/groups/{groupId}/owners/{ownerId}
  *   PUT /domains/{domainId}/groups
  *   DELETE /domains/{domainId}/groups/{groupId}
  *   POST /domains/{domainId}/groups/{groupId}/admins
  *   POST /domains/{domainId}/groups/{groupId}/users
  *   HEAD /domains/{domainId}/groups/{groupId}/admins/{adminId}


PermissionTypeController.java

  *   GET /domain/{domainId}/permissionTypes/{permissionTypeId}
  *   POST /domain/{domainId}/permissionTypes
  *   PUT /domain/{domainId}/permissionTypes
  *   DELETE /domain/{domainId}/permissionTypes/{permissionTypeId}
  *   HEAD /domain/{domainId}/permissionTypes/{permissionId}
  *   GET /domain/{domainId}/permissionTypes


UsersController.java

  *   DELETE /domains/{domainId}/users/{userId}
  *   GET /domains/{domainId}/users/{userId}
  *   GET /domains/{domainId}/users
  *   POST /domains/{domainId}/users
  *   PUT /domains/{domainId}/users
  *   HEAD /domains/{domainId}/users/{userId}


Any inputs or suggestions would be helpful.


Thanks & Regards,

Aarushi Bisht


Reply via email to