Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ plugins {
id 'java'
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'org.dailystudio'
Expand All @@ -20,8 +22,10 @@ repositories {
}

dependencies {
implementation('io.springfox:springfox-swagger2:+')
implementation('io.springfox:springfox-swagger-ui:+')

compile "org.projectlombok:lombok:+"
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
@SpringBootApplication
public class SpringbootstudyApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootstudyApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(SpringbootstudyApplication.class, args);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.dailystudio.springbootstudy.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출
.paths(PathSelectors.ant("/api/**")) // 그중 /api/** 인 URL들만 필터링
.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package org.dailystudio.springbootstudy.controller;

import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.RequiredArgsConstructor;
import org.dailystudio.springbootstudy.dto.user.UserInfoResDto;
import org.dailystudio.springbootstudy.dto.user.UserSaveReqDto;
import org.dailystudio.springbootstudy.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/*
UserService의 메소드는 현재 깡통이야.
디비와 연결을 하지 않았기 때문에 실제로 불러오는 값이 존재하지않아.
이번 소스코드에서는 swagger의 기능들을 살펴보고 넘어가자.
*/

@RestController
@RequestMapping("api/user")
@RequiredArgsConstructor
public class UserController {

private final UserService userService;

@ApiOperation(value = "유저 정보 저장하기",
notes = "유저 정보를 저장합니다.")
@ApiResponses(value = {
@ApiResponse(code = 201, message = "유저 저장 성공"),
@ApiResponse(code = 500, message = "서버에러")
})
@PostMapping("/save")
public ResponseEntity<Void> saveUser(@RequestBody UserSaveReqDto userSaveReqDto) {
userService.save(userSaveReqDto);
return ResponseEntity.ok().build();
}

@GetMapping
public ResponseEntity<List<UserInfoResDto>> getAllUser() {
List<UserInfoResDto> resDtos = userService.getAll();
return ResponseEntity.ok().body(resDtos);
}

@GetMapping("/{idx}")
public ResponseEntity<UserInfoResDto> getUserInfo(@PathVariable("idx") String idx) {
UserInfoResDto userInfoResDto = userService.findUserByIdx(idx);
return ResponseEntity.ok().body(userInfoResDto);
}

@PutMapping("/{idx}")
public ResponseEntity<Void> changeUserName(@PathVariable("idx") String idx, final String name) {
userService.changeUserName(idx, name);
return ResponseEntity.ok().build();
}

@DeleteMapping("/{idx}")
public ResponseEntity<Void> deleteUser(@PathVariable("idx") String idx) {
userService.deleteUser(idx);
return ResponseEntity.ok().build();

}
}
15 changes: 15 additions & 0 deletions src/main/java/org/dailystudio/springbootstudy/domain/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.dailystudio.springbootstudy.domain;

import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class User {
private Long userIdx;
private String userEmail;
private String userName;
private String userPass;
private String userPhone;
private String userAuth;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.dailystudio.springbootstudy.dto.user;

import lombok.Getter;

@Getter
public class UserInfoResDto {
private String email;
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.dailystudio.springbootstudy.dto.user;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;

@Getter
public class UserSaveReqDto {
@ApiModelProperty(example = "example@gmail.com", position = 1)
private String email;

@ApiModelProperty(example = "박찬인", position = 2)
private String name;

@ApiModelProperty(example = "q1w2e3r4!", position = 3)
private String pass;

@ApiModelProperty(example = "010-1234-1234", position = 4)
private String phone;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package org.dailystudio.springbootstudy.service;

import org.dailystudio.springbootstudy.domain.User;
import org.dailystudio.springbootstudy.dto.user.UserInfoResDto;
import org.dailystudio.springbootstudy.dto.user.UserSaveReqDto;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Service
public class UserService {


public void save(UserSaveReqDto userSaveReqDto) {
//유저 등록 작업 -> DB에 INSERT 해야 겠지?
}


public List<UserInfoResDto> getAll() {
//모든 유저 찾는 작업 -> DB에서 SELECT 해야겠지?
List<User> users = Arrays.asList();
//반환 시킬 객체 준비
List<UserInfoResDto> userInfoResDtos = new ArrayList<>();
//domain -> dto 변환

//가공된 dto 반환
return userInfoResDtos;
}

public UserInfoResDto findUserByIdx(String idx) {
//DB에 userIdx는 보통 정수로 저장되어있으니까 String으로 받은 idx를 Long(int보다 큰 정수형)으로 변환하자.
Long userIdx = Long.valueOf(idx);
//반환시킬 객체 준비
UserInfoResDto userInfoResDto = null;
//디비에서 userIdx를 이용하여 User객체를 찾아온다.

//domain -> dto 변환

//가공된 dto 반환
return userInfoResDto;
}

public void changeUserName(String idx, String name) {
Long userIdx = Long.valueOf(idx);
//유저 정보를 수정하는 과정
}

public void deleteUser(String idx) {
Long userIdx = Long.valueOf(idx);
//유저 정보를 제거하는 과정
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
@SpringBootTest
public class SpringbootstudyApplicationTests {

@Test
public void contextLoads() {
}
@Test
public void contextLoads() {
}

}