Add custom service within camunda rest api

nevermind, figured it out, i mixed up two approaches.
To add custom api, do this:

  1. define interface:

     @Produces(MediaType.APPLICATION_JSON)
     public interface TaskAssignmentConfigRestService {
    
     public static final String PATH = "/task-config";
    
     @GET
     @Path("/ping")
     @Produces(MediaType.APPLICATION_JSON)
     String ping();
    
    }
    
  2. Implement it:

    public class TaskAssignmentConfigServiceImpl extends AbstractRestProcessEngineAware implements TaskAssignmentConfigRestService {
    
     public TaskAssignmentConfigServiceImpl(String name, ObjectMapper objectMapper) {
         super(name, objectMapper);
     }
    
     @Override
     public String ping() {
         return "pong";
     }
    }
    
  3. Create it:

    @Path(DefaultProcessEngineRestServiceImpl.PATH)
    public class TaskAssignmentConfigDefaultProcessEngineRestServiceImpl extends DefaultProcessEngineRestServiceImpl {
    
    
     @Path(TaskAssignmentConfigRestService.PATH)
     public TaskAssignmentConfigRestService getTaskAssignmentConfigService() {
         String rootResourcePath = getRelativeEngineUri(null).toASCIIString();
         TaskAssignmentConfigServiceImpl subResource = new TaskAssignmentConfigServiceImpl(null, getObjectMapper());
         subResource.setRelativeRootResourceUri(rootResourcePath);
         return subResource;
     }
    }
    
  4. register it:

     @Component
     public class CustomJerseyResourceConfiguration extends CamundaJerseyResourceConfig {
     private static final Logger log = org.slf4j.LoggerFactory.getLogger(CustomJerseyResourceConfiguration.class);
    
     @Override
     protected void registerCamundaRestResources() {
         log.info("Configuring camunda rest api.");
         this.registerClasses(TaskAssignmentConfigDefaultProcessEngineRestServiceImpl.class);
         this.registerClasses(CamundaRestResources.getConfigurationClasses());
         this.register(JacksonFeature.class);
         log.info("Finished configuring camunda rest api.");
     }
    }
    
  5. Easy profit! XD

4 Likes