Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Node.js
- Java
- node
- Swift
- Xcode
- 앱
- mac
- spring
- IOS
- API
- 회원가입
- spring boot
- post
- 통신
- 개발자
- database
- SwiftUI
- 알고리즘
- 아이폰
- 앱개발
- 백준
- java spring
- 백엔드
- Alamofire
- UI
- JavaScript
- 개발
- 서버개발
- db
- swagger
Archives
- Today
- Total
YagSill
Spring boot + Swagger API 만들기(회원가입 기능) 본문
728x90
안녕하세요 yagsil 입니다.
오늘은 spring boot과 swagger를 연동해서 api 를 만들어 보겠습니다.
아주아주 간단합니다!
컨트롤러 부분입니다.
// Controller
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@Operation(summary = "앱 회원가입", description = "회원가입 시 호출", tags = { "user" })
@ApiResponses(value = {
@ApiResponse(description = "OK", responseCode = "200", content = {
@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = SignUpDto.Result.class)) }),
})
@PostMapping(value = "signUp", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public ResponseEntity<?> signUp(@Parameter SignUpDto.In in) {
return new ResponseEntity<>(userService.signUp(in), HttpStatus.OK);
}
}
Dto 부분입니다.
// DTO
public class SignUpDto {
@Data
public static class In {
@Schema(example = "altm56", description = "아이디")
private String userId;
@Schema(example = "1111", description = "비밀번호")
private String passwd;
@Schema(example = "왕눈이", description = "닉네임")
private String userName;
@Schema(example = "사원", description = "직급")
private String userRank;
@Schema(example = "504", description = "호실")
private String userRoom;
@Schema(example = "01000000000", description = "전화번호")
private String userPhone;
}
@Data
public static class Out {
@Schema(example = "성공!", description = "성공 메세지")
private String data;
}
@Data
@Builder
public static class Result {
@Builder.Default
@Schema(example = "200")
private Integer resultCode = 200;
@Builder.Default
@Schema(example = "OK")
private String resultMsg = "OK";
@Schema(implementation = SignUpDto.Out.class)
public Map<String,Object> data;
}
}
다음은 DAO 부분입니다.
// DAO
@Mapper
public interface UserDao {
public void insertAppSignUp(Map<String,Object> param);
public Map<String,Object> selectAppId(Map<String,Object> param);
}
다음은 service부분을 만져봅시다.
// Service
public SignUpDto.Result signUp(SignUpDto.In in) {
Map<String, Object> param = new HashMap<String,Object>();
param = om.convertValue(in, new TypeReference<Map<String,Object>>(){});
Map<String,Object> result = new HashMap<String,Object>();
if (param.get("userId") == null) {
result.put("error", "아이디를 입력해 주세요");
return SignUpDto.Result.builder().data(result).build();
} else if(param.get("passwd") == null) {
result.put("error", "비밀번호를 입력해 주세요");
return SignUpDto.Result.builder().data(result).build();
} else if(param.get("userName") == null) {
result.put("error", "닉네임을 입력해 주세요");
return SignUpDto.Result.builder().data(result).build();
} else if(param.get("userRank") == null) {
result.put("error", "직급을 입력해 주세요");
return SignUpDto.Result.builder().data(result).build();
} else if(param.get("userRoom") == null) {
result.put("error", "방번호를 입력해 주세요");
return SignUpDto.Result.builder().data(result).build();
}
Map<String,Object> appId = userDao.selectAppId(param);
if (appId != null) {
result.put("error", "사용할 수 없는 아이디 입니다");
return SignUpDto.Result.builder().data(result).build();
}
userDao.insertAppSignUp(param);
result.put("user", "회원가입에 성공하였습니다");
return SignUpDto.Result.builder().data(result).build();
}
다음은 mapper 부분입니다.
// Mapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="star.inter.dao.UserDao">
<select id="selectAppId" resultType="map" parameterType="map">
select a.user_id AS userId
from user_Info a
where a.user_id = #{userId}
</select>
<insert id="insertAppSignUp" parameterType="map">
insert into user_Info
(
user_id
, user_password
, user_name
, user_rank
, user_room
, user_phone
)
values
(
#{userId}
, #{passwd}
, #{userName}
, #{userRank}
, #{userRoom}
, #{userPhone}
)
</insert>
</mapper>
엄청나게 간단하게 만들어 보았습니다.
기본적으로 회원가입을 하기 위해서는 중복되는 ID가 DB에 저장되면 안되기 때문에 if문으로 처리를 해주었습니다.
이렇게 중복되는 아이디가 입력되면 error 메세지를 날려주도록 만들었습니다.
다음은 Spring boot + Swagger 로그인 api 만들기를 작성해 보도록 하겠습니다.
728x90
'JAVA Spring' 카테고리의 다른 글
JAVA Spring - org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 에러 (0) | 2023.01.27 |
---|---|
Spring boot + Swagger API 만들기(로그인 기능) (0) | 2023.01.17 |
Java Spring Boot + swagger API 만들기 (0) | 2023.01.11 |
java Spring boot / FCM Push 연동하기 (0) | 2023.01.11 |
JAVA Spring boot DB데이터 전체 조회해보기 (0) | 2022.01.14 |