Skip to content

API

A standalone OSGi module that exposes Java interfaces/APIs for other modules to implement.

  • Share contracts (e.g., UserValidator) between modules.
  • Avoid tight coupling between components.
Terminal window
blade create -t api user-utils-api
user-utils-api/src/main/java/com/example/user/utils/api/UserValidator.java
public interface UserValidator {
boolean isValidUser(String email);
}

Another module (e.g., user-utils-impl) can implement this:

@Component(service = UserValidator.class)
public class StrictUserValidator implements UserValidator {
@Override
public boolean isValidUser(String email) {
return email.matches("^[A-Za-z0-9+_.-]+@(.+)$"); // Basic email check
}
}
  • Shared Validation: Multiple modules validate users consistently.
  • Plugin Architecture: Allow third-party modules to extend functionality (e.g., custom login validators).