Skip to content

bardiademon/VertxRest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VertxRest

This is the repository for Vert.x rest.

Vert.x Rest for convenience in rest api programming

How use

@Rest(method = RequestMethod.POST, path = {"/tst" , "/test"}, db = false, dto = TestDto.class, validator = TestValidation.class)
public final class TestRest extends RestController<TestDto, String> {
    @Override
    public void handler(final RestHandler<TestDto, String> restHandler) throws Exception {
        restHandler.success(Response.TEST);
    }
}

Rest

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Rest {
    RequestMethod method() default RequestMethod.ANY;

    String[] path() default {};

    String produces() default "application/json";

    String consumes() default "application/json";

    boolean db() default true;

    Class<?> dto() default NothingDto.class;

    Class<?>[] validator() default {};

    boolean authentication() default false;

    UserRole[] roles() default UserRole.ANY;
}

Rest Specifies that the class is a Rest

  • method: Specifies the request method
  • path: Specifies the route
  • produces: Specifies what this request produces
  • consumes: Specifies what this request consumes
  • db: Determines whether this Rest requires a database connection or not
  • dto: Defines the input Dto class
  • validator: It defines the classes that are used to validate the DTO
  • authentication: Checking the user login with the token created from sign-in rest
  • roles: If authentication is enabled, this item is checked and the access level is determined

RestController

public abstract class RestController<REQUEST, RESPONSE> {

    public RestController() {
    }

    abstract public void restHandler(final Handler<REQUEST, RESPONSE> restHandler) throws Exception;
}

Handler

public interface Handler<REQUEST, RESPONSE> {
    void fail(final Throwable throwable , final ServerResponse<RESPONSE> response);

    void fail(final Throwable throwable);

    void fail(final Throwable throwable , final RESPONSE info , final Response response);

    void fail(final ServerResponse<RESPONSE> response);

    void fail(final RESPONSE info , final Response response);

    void fail(final Response response);

    void success(final ServerResponse<RESPONSE> serverResponse);

    void success(final RESPONSE info , final Response response);

    void success(final RESPONSE info);

    void success(final Response response);

    REQUEST request();

    RoutingContext routingContext();

    Vertx vertx();

    SQLConnection sqlConnection();

    UserEntity user();
}

💻 Technologies

Java Vert.x

🌟 Spread the word!

If you want to say thank you:

  • Add a GitHub Star to the project!
  • Follow my GitHub bardiademon

⚠️ License & 📝 Credits

by bardiademon https://bardiademon.com