기능 | 엔드포인트 | 본문 데이터 예(JSON) | 쿼리 파라미터 | 패스 파라미터 | 응답 |
---|---|---|---|---|---|
회원가입 | POST/users | {"name":"Dexter","email":"dexter.haan@gmail.com","password": "PASSWORD"} | 201 | ||
이메일 인증 | POST/users/email-verify | {"signupVerifyToken":"임의의문자열"} | 201 엑세스 토큰 | ||
로그인 | POST/users/login | {"email":"dexter.hann@gmail.com","password":"PASSWORD"} | 201 엑세스 토큰 | ||
회원 정보 조회 | GET/users/:id | id:유저 생성시 만들어진 유저 ID,email이 아니라 임의의 문자열 | 200 회원정보 |
AppController, AppService 삭제
import { Module } from '@nestjs/common';
import { UserController } from './users/users.controller';
@Module({
imports: [],
controllers: [UserController],
})
export class AppModule {}
import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common';
import { CreateUserDto, UserLoginDto, VertifyEmailDto } from './dto/create-user.dto';
import { UserInfo } from './UserInfo';
@Controller('users')
export class UserController {
@Post()
async createUser(@Body() dto: CreateUserDto): Promise<void> {
console.log(dto);
}
@Post('/email-verify')
async vertifyEmail(@Query() dto: VertifyEmailDto): Promise<string> {
console.log(dto);
return;
}
@Post('/login')
async login(@Body() dto: UserLoginDto): Promise<string> {
console.log(dto);
return;
}
@Get('/:id')
async getUserInfo(@Param('id') userId: string): Promise<UserInfo> {
console.log(userId);
return;
}
}
export class CreateUserDto {
readonly name: string;
readonly email: string;
readonly password: string;
}
export class VertifyEmailDto {
signupVerifyToken: string;
}
export class UserLoginDto {
email: string;
password: string;
}