Spring Boot를 사용한 CRUD 작업을 위한 REST API

8760 단어 javacrudapispringboot
이 기사 Under 10 Steps에서는 USER의 예를 들어 스프링 부트로 간단한 RESTful API를 만드는 방법을 살펴보겠습니다.

필수 전제 조건 🗣:


  • 컴퓨터 👨‍💻에 Java가 설치되었습니다.
  • Postman이 API를 테스트합니다.
  • 기꺼이 배우겠습니다😉

  • 코드에 뛰어들 시간입니다 🚀

    1단계: https://start.spring.io/에서 기본 프로젝트를 만듭니다. 프로젝트 이름과 설명을 제공합니다. Spring Web, Spring Data JPA 및 MySQL 드라이버의 3가지 필수 종속성을 추가합니다.! 마지막으로 생성을 클릭하면 zip 파일이 다운로드됩니다. IntelliJ, eclipse 또는 NetBeans와 같은 선호하는 IDE에서 압축을 풀고 엽니다.

    제 경우에는 애플리케이션 이름이 crud입니다.



    2단계: crud/src/main/java/com/example/crud/CrudApplication.java에 1. 컨트롤러 2. 모델 3. 리포지토리 4. 서비스인 세 개의 폴더를 생성하여 상용구를 생성해 보겠습니다. 일반적으로 폴더 구조는 아래와 같아야 합니다.



    3단계: mysql에 users가 있는 데이터베이스 및 user_id ( primary Key ), first_name and email 테이블 생성
    mysql 터미널에서 작업을 수행하는 다음 코드를 실행합니다.

    CREATE TABLE `user_schema`.`users` (
      `user_id` INT NOT NULL AUTO_INCREMENT,
      `first_name` VARCHAR(45) NULL,
      `email` VARCHAR(45) NULL,
      UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC),
      PRIMARY KEY (`user_id`));
    

    crud/src/main/resources/application.properties에 다음 코드를 추가합니다.

    spring.datasource.url = jdbc:mysql://127.0.0.1:3306/user_schema
    #username and password of mysql 
    spring.datasource.username=root
    spring.datasource.password=root
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
    
    


    4단계: 이 폴더에 몇 가지 코드를 작성하여 마법을 부려봅시다. User.java 폴더에 model라는 파일을 만들고 다음 코드를 추가합니다.

    package com.example.crud.model;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "users")
    public class User {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name="user_id")
        private Long id;
    
        @Column(name="first_name")
        private String firstName;
    
        @Column(name="email")
        private String email;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getFirstName() {
            return firstName;
        }
    
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    } 
    


    5단계: 이제 repository 패키지에 UserRepository.java라는 또 다른 파일을 생성합니다. 여기서 클래스는 JPARepository에서 확장되어 create() , update() , get()delete() 메서드와 같은 쿼리 실행 기능을 사용할 수 있습니다. 마지막으로 다음 코드를 추가

    package com.example.crud.repository;
    
    
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.stereotype.Repository;
    
    import com.example.crud.model.User;
    
    // @Repository tells the spring boot that it wrapped with User Table with sql execution queries.
    @Repository
    public interface UserRepository extends JpaRepository<User, Long> {
    }
    


    6단계: 이제 service 폴더 안에 UserService.java라는 파일을 만듭니다. 이 서비스 계층에서는 일반적으로 비즈니스 로직 🤖을 처리합니다.

    package com.example.crud.service;
    import com.example.crud.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import com.example.crud.repository.UserRepository;
    import java.util.List;
    
    @Service
    public class UserService {
    
        @Autowired
        UserRepository userRepository;
    
        public User createUser(User user){
            return userRepository.save(user);
        }
    
        public List<User> getUsers(){
            return userRepository.findAll();
        }
    
        public void deleteUser(Long userId){
            userRepository.deleteById(userId);
        }
    
        public User updateUser(Long userId, User userDetails){
            User user = userRepository.findById(userId).get();
            user.setFirstName(userDetails.getFirstName());
            user.setEmail(userDetails.getEmail());
            return userRepository.save(user);
        }
    }
    
    


    7단계: 이제 controller 폴더 안에 UserController.java라는 파일을 만듭니다. 이것은 요청이 서버에 도달할 때 가장 먼저 발생하는 레이어입니다. 이것은 매개변수의 유효성을 검사하거나 API를 인증하거나 일부 미들웨어 유효성 검사를 추가하기에 적합한 위치입니다. 하지만 지금은 컨트롤러의 기본 구조 작성에만 집중합니다.
    마지막으로 다음 코드를 추가합니다.

    package com.example.crud.controller;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.example.crud.model.User;
    import com.example.crud.service.UserService;
    
    // spring will understand that the methods in this class will follow rest convention
    @RestController
    @RequestMapping("/api")
    public class UserController {
        // spring will create a bean when we do a autowiring
        @Autowired
        UserService userService;
    
        // invoking the spring-boot that this is end point /users
        // to create USER
        @RequestMapping(value="/users", method=RequestMethod.POST)
        public User createUser(@RequestBody User usr) {
            return userService.createUser(usr);
        }
    
        // to get all the list of Users
        @RequestMapping(value="/users", method=RequestMethod.GET)
        public List<User> readUsers() {
            return userService.getUsers();
        }
    
        // to update the values of USER
        @RequestMapping(value="/users/{userId}", method=RequestMethod.PUT)
        public User readUsers(@PathVariable(value = "userId") Long id, @RequestBody User empDetails) {
            return userService.updateUser(id, empDetails);
        }
    
        // to delete the record from the DB
        @RequestMapping(value="/users/{userId}", method=RequestMethod.DELETE)
        public void deleteUsers(@PathVariable(value = "userId") Long id) {
            userService.deleteUser(id);
        }
    
    }
    
    


    마지막으로 저장소 디렉토리는 다음과 같아야 합니다.



    만세!!!!! 그게 다야! 🤘🤘 이제 포트 번호 8080(물론 기본 포트)에서 애플리케이션을 🏎 시작할 수 있습니다.



    8단계: Postman을 사용하여 API 테스트 👻





    여기에서 우체부 수거 링크를 찾으십시오: https://www.getpostman.com/collections/763c722809426a268aac

    추신: 여기에서 github 저장소를 찾을 수 있습니다https://github.com/SamalaSumanth0262/Spring-Boot-CRUD. https://github.com/SamalaSumanth0262 🙋‍♂️ 또는 🙋‍♂️에서 저를 팔로우하세요

    Hey Peeps, This is my first blog 🎯 on JAVA with spring boot. Please do leave any kind of improvements or suggestions. More than happy to hear🙇‍♂️.. Cheers !!! 🍻🍻

    좋은 웹페이지 즐겨찾기