Вы можете использовать аннотацию @RestControllerEndpoint
с spring-boot 2.x, здесь вы можете иметь свое собственное отображение запроса вместе с HttpMethods.Вот пример:
@Component
@RestControllerEndpoint(id = "remote")
public class CustomActuator {
@RequestMapping(value = {"/{actuatorInput}"}, produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> feature(@PathVariable("actuatorInput") String actuatorInput) {
System.out.println("actuatorInput : " + actuatorInput);
Map<String, Object> details = new HashMap<>();
details.put("input", actuatorInput);
return details;
}
}
Или вы можете использовать @Endpoint(id = "endpoint")
, с которым вы можете иметь @ReadOperation
и @WriteOperation
для операций GET и POST.
Вот пример:
@Component
@Endpoint(id = "custom-health")
public class CustomHealthEndpoint {
@ReadOperation
public String customEndPointByName(@Selector String name) {
return "custom-end-point : " + name;
}
@WriteOperation
public void writeOperation(@Selector String name) {
System.out.println("Write Operation! :: " + name);
}
@DeleteOperation
public void deleteOperation(@Selector String name){
System.out.println("Delete Operation! :: " + name);
}
}
См .: https://www.javadevjournal.com/spring-boot/spring-boot-actuator-custom-endpoint/