Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

JBT uses XML-files for describing controllers, endpoints and models. Then it uses such files for Java-code generation. As a result you get API based on MVC pattern written on Java. Let's start

Structure

API structure is:

Image Added








api-impl

this module contains project controllers. Here example is an example of api-impl structure:

Image Added

Controller example is given below:

Code Block
languagejava
titleLoginAPIImpl
collapsetrue
package com.knubisoft.api.impl;

import com.knubisoft.api.dto.GenericApiResponse;
import com.knubisoft.api.dto.JwtTokensResponse;
import com.knubisoft.api.dto.LoginRequest;
import com.knubisoft.api.spec.LoginAPI;
import com.knubisoft.service.LoginService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

@RequiredArgsConstructor
@RestController
public class LoginAPIImpl implements LoginAPI {

    private final LoginService loginService;

    @Override
    public ResponseEntity<GenericApiResponse<JwtTokensResponse>> login(@Valid final LoginRequest requestBody) {
        final JwtTokensResponse result = loginService.login(requestBody.getUsername(), requestBody.getPassword());
        return ResponseEntity.ok(new GenericApiResponse<>(result));
    }
}

api-spec

this module contains xml description of enpoints, controllers, enums, dto and generated API interfaces

About xml description you can find details here