Creating new Endpoint
Entity Class: Create a new Java class that represent your database table. Annotate the class with
@Entity
and add the necessary fields.@Entity public class OrganizationUnit { @Id @GeneratedValue(strategy = GeneratingType.IDENTITY) private long id; private String name; private String address; //constructor //getter & setters //toString }
Repository: Create new interface that extends
JpaRepository
and specify the entityt and primary key type.public interface OrganizationunitRepository extends JpaRepository<OrganizationUnit, long> {}
Service: Create a new service class to handle the business logic for your endpoint. Inject the repository into the service class and create the necessary methods.
@Service public class OrganizationunitService { private final OrganizationunitRepository organizationunitRepository; public OrganizationunitService(OrganizationunitRepository organizationunitRepository) { this.organizationunitRepository = organizationunitRepository; } public OrganizationUnit createOrganizationUnit(OrganizationUnit organizationUnit) { return organizationunitRepository.save(organizationUnit) } public List<OrganizationUnit> getAllOrganizationUnits() { return organizationunitRepository.findAll(); } }
Controller: Create a new controller class to handle the incoming HTTP requests. Inject the service into the controller class and create the necessary methods.
@RestController @RequestMapping("/api/v1/organizationUnits") public class OrganizationUnitController { private final OrganizationunitService organizationUnitService; public OrganizationUnitController(OrganizationunitService organizationUnitService) { this.organizationUnitService = organizationUnitService; } @PostMapping public OrganizationUnit createOrganizationUnit(@RequestBody OrganizationUnit organizationUnit) { return organizationUnitService.createOrganizationUnit(organizationUnit); } @GetMapping public List<OrganizationUnit> getAllOrganizationUnits() { return organizationUnitService.getAllOrganizationUnits(); } }
, multiple selections available,