xction-dev / xction.co.kr

Xction!의 홈페이지를 만들고 있습니다
0 stars 0 forks source link

feat: add mock user api #38

Closed designDefined closed 5 months ago

designDefined commented 6 months ago

사용법

API Specification

DTO

여러 요청에서 공통으로 사용되는 DTO 타입입니다

type UserDto = {
  id: number; // PK
  name: string; // 이름
  thumbnail?: string; // 썸네일 주소 (optional)
}

로그인이 필요하지 않은 요청

POST /users/signup

회원가입을 합니다. 회원가입한 계정은 서버 정지 시 초기화됩니다.

type RequestBody = {
  name: string; // 유저 이름
  thumbnail?: string; // 썸네일 주소 (optional)
  username: string; // 로그인에 사용될 아이디
  password: string; // 로그인에 사용될 비밀번호
}

type ResponseBody = never;

POST /users/signin

로그인을 합니다. 회원가입 한 계정으로만 로그인할 수 있습니다.

type RequestBody = {
  username: string; // 회원가입 시의 아이디
  password: string; // 회원가입 시의 비밀번호
}

type ResponseBody = {
  token: string; // 로그인이 필요한 요청에 사용됩니다.
}

GET /users

유저 목록을 가져옵니다. 회원가입한 계정이 있다면 함께 조회됩니다.

type ResponseBody = {
  data: UserDto[];
}

GET /users/:userId

Id를 기준으로 특정 유저 하나의 정보를 가져옵니다.

type ResponseBody = UserDto;

로그인이 필요한 요청

아래 요청들은 /users/signin을 통해 발급받은 토큰을 request header에 함께 보내야 합니다. 헤더 이름은 Authorization이고, 별도의 접두사 없이 토큰만 그대로 보내면 됩니다.

GET /users/me

내 정보를 가져옵니다.

type ResponseBody = UserDto;

PATCH /users/me

내 정보를 수정합니다. 회원가입 시 보냈던 정보의 일부만 수정할 수도 있습니다.

type RequestBody = {
  name?: string;
  thumbnail?: string;
  username?: string;
  password?: string;
}

type ResponseBody = never;