import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
s.getCallbackUrl());
}
- private void validateRegistrationInfo(ServiceRegistrationInfo registrationInfo) throws ServiceException {
+ private void validateRegistrationInfo(ServiceRegistrationInfo registrationInfo)
+ throws ServiceException, MalformedURLException {
if (registrationInfo.serviceName.isEmpty()) {
throw new ServiceException("Missing mandatory parameter 'serviceName'");
}
if (registrationInfo.keepAliveIntervalSeconds < 0) {
throw new ServiceException("Keepalive interval shoul be greater or equal to 0");
}
+ if (!registrationInfo.callbackUrl.isEmpty()) {
+ new URL(registrationInfo.callbackUrl);
+ }
}
@ApiOperation(value = "Register a service")
value = { //
@ApiResponse(code = 200, message = "Service supervision timer refreshed, OK"),
@ApiResponse(code = 404, message = "The service is not found, needs re-registration")})
- @PostMapping("/services/keepalive")
+ @PutMapping("/services/keepalive")
public ResponseEntity<String> keepAliveService(//
@RequestParam(name = "name", required = true) String serviceName) {
try {