인터페이스 4일차 (postman)

2023. 1. 6. 12:44코딩배움일지/인터페이스 구현

auth

POST

POST api/auth/

 

http://localhost:4040/api/auth/

 

{
    "email": "jiraynor",
    "password": "qwer1234!!"
}

 

Example Request success

curl --location --request POST 'localhost:4040/api/auth/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "jiraynor@gmail.com",
    "password": "qwer1234!!"
}'

 

Example Response
{
  "status": true,
  "message": "login success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
    "expirationTime": 6000000
  }
}

 

 

예시:

 

 

 

 

response 패키지 생성

package com.jingu.board.dto.response;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor(staticName="set")
public class ResponseDto<D> {
	private boolean status;
	private String message;
	private D data;
	
	public static <D> ResponseDto<D> setSuccess(String message, D data){
		return ResponseDto.set(true, message, data);
	}
	
	public static <D> ResponseDto<D> setFailed(String message){
		return ResponseDto.set(false, message, null);
	}
}

main controller  postmap 수정

	// @PostMapping(end-point) : 해당 end-point로 Post 방식의 Request 가 왔을 때 동작
	@PostMapping(HELLO)
	// @RequestBody : 해당 Request의 Body 에서 JSON 을 인식해 인스트너스로 변경
	public ResponseDto<HelloDto> postHello(@RequestBody HelloDto requestBody) {
		
		return ResponseDto.setSuccess("hello", requestBody);

 

결과

 

AuthController

package com.jingu.board.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.jingu.board.dto.auth.AuthPostDto;
import com.jingu.board.dto.auth.LoginDto;
import com.jingu.board.dto.response.ResponseDto;

@RestController
@RequestMapping("api/auth/")
public class AuthController {
	
	@PostMapping("")
	public ResponseDto<LoginDto> login(@RequestBody AuthPostDto requestBody){
		LoginDto result = new LoginDto("JWT",3600000);
		return ResponseDto.setSuccess("login success", result);
	}
}

AuthPostDto

package com.jingu.board.dto.auth;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AuthPostDto {
	private String email;
	private String password;
}

 

LoginDto

package com.jingu.board.dto.auth;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginDto {
	private String token;
	private int expirationTime;
}

확인

 

@Service

 

새로 만들기

 

컨트롤러에 하면 안됨

AuthService

package com.jingu.board.service;

import org.springframework.stereotype.Service;

import com.jingu.board.dto.auth.AuthPostDto;
import com.jingu.board.dto.auth.LoginDto;
import com.jingu.board.dto.response.ResponseDto;

@Service
public class AuthService {
	
	public ResponseDto<LoginDto> login(AuthPostDto dto){
		LoginDto result = new LoginDto("JWT",3600000);
		return ResponseDto.setSuccess("", result);
	}

}

결과는 같다.