> For the complete documentation index, see [llms.txt](https://s-organization-169.gitbook.io/untitled/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://s-organization-169.gitbook.io/untitled/trello-api.md).

# Trello API

{% embed url="<https://github.com/hyem00/trello>" %}

### 회원 관리 API

## 회원가입

<mark style="color:green;">`POST`</mark> `localhost:3000/api/signup`

#### Request Body

| Name                                              | Type   | Description                |
| ------------------------------------------------- | ------ | -------------------------- |
| email<mark style="color:red;">\*</mark>           | string | 실제 이메일 형식대로 작성             |
| password<mark style="color:red;">\*</mark>        | string | 최소 4자 이상의 영문 대소문자 및 숫자로 작성 |
| confirmPassword<mark style="color:red;">\*</mark> | string | password와 동일하게 작성          |
| nickname<mark style="color:red;">\*</mark>        | String | 닉네임                        |

{% tabs %}
{% tab title="201: Created 회원가입에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 아이디 또는 비밀번호를 입력해주세요." %}

{% endtab %}

{% tab title="400: Bad Request 회원가입에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 회원 정보 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/user/:uid`

#### Headers

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| uid<mark style="color:red;">\*</mark> | number | 유저 아이디      |

{% tabs %}
{% tab title="200: OK 회원 정보" %}

{% endtab %}

{% tab title="404: Not Found 회원 정보가 없습니다." %}

{% endtab %}
{% endtabs %}

## 회원 정보 수정

<mark style="color:orange;">`PUT`</mark> `localhost:3000/api/user/:uid`

#### Headers

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| uid<mark style="color:red;">\*</mark> | number | 유저 아이디      |

#### Request Body

| Name                                          | Type   | Description                              |
| --------------------------------------------- | ------ | ---------------------------------------- |
| password<mark style="color:red;">\*</mark>    | string | 기존 유저 비밀번호                               |
| newNickname<mark style="color:red;">\*</mark> | string | 수정할 유저 닉네임                               |
| newPassword<mark style="color:red;">\*</mark> | string | 수정할 유저 비밀번호 (최소 4자 이상의 영문 대소문자 및 숫자로 작성) |

{% tabs %}
{% tab title="200: OK 정보 수정에 성공하였습니다." %}

{% endtab %}

{% tab title="401: Unauthorized 로그인이 필요한 기능 입니다." %}

{% endtab %}

{% tab title="400: Bad Request 정보 수정에 실패하였습니다." %}

{% endtab %}

{% tab title="404: Not Found 수정할 내용이 입력되지 않았습니다." %}

{% endtab %}
{% endtabs %}

### 로그인 API

## 로그인

<mark style="color:green;">`POST`</mark> `localhost:3000/api/login`

#### Request Body

| Name                                       | Type   | Description |
| ------------------------------------------ | ------ | ----------- |
| email<mark style="color:red;">\*</mark>    | String | 이메일         |
| password<mark style="color:red;">\*</mark> | String | 비밀번호        |

{% tabs %}
{% tab title="200: OK 로그인 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 아이디 또는 비밀번호를 입력해주세요." %}

{% endtab %}

{% tab title="400: Bad Request 로그인 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 멤버 관리 API

## 한 보드의 멤버 전체 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/member`

#### Request Body

| Name | Type | Description |
| ---- | ---- | ----------- |
| bid  | int  |             |

{% tabs %}
{% tab title="200: OK 멤버 리스트가 조회 완료 되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 멤버 조회에 실패하였습니다." %}

{% endtab %}

{% tab title="404: Not Found 해당 보드가 존재하지 않습니다" %}

{% endtab %}
{% endtabs %}

## 멤버 추가 기능

<mark style="color:green;">`POST`</mark> `localhost:3000/api/member`

보드 관리자만 사용 할 수 있는 기능

#### Request Body

| Name | Type | Description |
| ---- | ---- | ----------- |
| uid  | int  |             |
| bid  | int  |             |

{% tabs %}
{% tab title="200: OK 멤버 추가에 성공하였습니다." %}

{% endtab %}

{% tab title="404: Not Found 찾을 수 없는 사용자 입니다." %}

{% endtab %}

{% tab title="401: Unauthorized 권한이 없습니다." %}

{% endtab %}

{% tab title="404: Not Found 쿠키값에 유저가 존재하지 않습니다" %}

{% endtab %}
{% endtabs %}

## 멤버 삭제 기능

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/member/`

보드 관리자만 사용 할 수 있는 기능

#### Cookies

| Name | Type | Description |
| ---- | ---- | ----------- |
| uid  | int  |             |

#### Request Body

| Name | Type | Description |
| ---- | ---- | ----------- |
| bid  | int  |             |

{% tabs %}
{% tab title="200: OK 멤버 삭제에 성공하였습니다." %}

{% endtab %}

{% tab title="404: Not Found 존재하지 않는 멤버 입니다." %}

{% endtab %}

{% tab title="401: Unauthorized 권한이 없습니다." %}

{% endtab %}

{% tab title="404: Not Found 존재하지 않는 보드입니다." %}

{% endtab %}

{% tab title="400: Bad Request 멤버 삭제에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 보드관리 API&#x20;

## 전체 보기

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid`

#### Request Body

| Name | Type    | Description |
| ---- | ------- | ----------- |
| bid  | integer | 조회 될 보드아이디  |

{% tabs %}
{% tab title="200: OK 리스트 조회에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 리스트 조회에 실패하였습니다." %}

{% endtab %}

{% tab title="404: Not Found 조회 가능한 보드가 없습니다." %}

{% endtab %}
{% endtabs %}

## 보드 생성

<mark style="color:green;">`POST`</mark> `localhost:3000/api/board`

#### Request Body

| Name        | Type    | Description |
| ----------- | ------- | ----------- |
| boardId     | integer | 보드 아이디      |
| userId      | integer | 유저 아이디      |
| name        | varchar | 보드 이름       |
| explanation | varchar | 보드 설명       |
| color       | varchar | 보드 색상       |

{% tabs %}
{% tab title="200: OK 보드 생성이 완료 되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 보드 생성에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 보드 수정

<mark style="color:purple;">`PATCH`</mark> `localhost:3000/api/board/:bid`

#### Request Body

| Name        | Type    | Description |
| ----------- | ------- | ----------- |
| name        | varchar | 보드 이름       |
| explanation | varchar | 보드 설명       |
| color       | String  | 보드 색상       |

{% tabs %}
{% tab title="200: OK 보드 수정이 완료 되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 보드 수정에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 보드 삭제

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/board/:bid`

#### Request Body

| Name    | Type    | Description |
| ------- | ------- | ----------- |
| boardId | integer | 보드 아이디      |
| userId  | integer | 유저 아이디      |

{% tabs %}
{% tab title="200: OK 보드 삭제가 완료 되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 보드 삭제에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 리스트 API

## 리스트 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/list`

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
| lid  | number |             |

{% tabs %}
{% tab title="200: OK 리스트 조회에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 리스트 조회에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 리스트 생성

<mark style="color:green;">`POST`</mark> `localhost:3000/api/board/:bid/list`

#### Request Body

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| title   | String | 리스트 제목      |
| content | String |             |

{% tabs %}
{% tab title="200: OK 리스트가 생성되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 리스트 생성이 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 리스트 수정

<mark style="color:purple;">`PATCH`</mark> `localhost:3000/api/board/:bid/list/:lid`

#### Request Body

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| title   | String |             |
| content | String |             |

{% tabs %}
{% tab title="200: OK 리스트 수정에 성공하였습니다" %}

{% endtab %}

{% tab title="404: Not Found 해당하는 리스트가 존재하지 않습니다." %}

{% endtab %}

{% tab title="400: Bad Request 수정할 내용 또는 제목을 입력해주세요." %}

{% endtab %}
{% endtabs %}

## 리스트 삭제

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/board/:bid/list/:lid`

{% tabs %}
{% tab title="200: OK 리스트가 삭제되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 리스트 삭제에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 관리 API

## 카드 작성 api

<mark style="color:green;">`POST`</mark> `localhost:3000/api/board/:bid/list/:lid/card`

#### Headers

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark> | number | 보드 아이디      |
| lid<mark style="color:red;">\*</mark> | number | 리스트아이디      |

#### Request Body

| Name                                          | Type   | Description |
| --------------------------------------------- | ------ | ----------- |
| title<mark style="color:red;">\*</mark>       | String | 카드 제목       |
| color<mark style="color:red;">\*</mark>       | String | 카드 색상       |
| manager<mark style="color:red;">\*</mark>     | String | 작업자         |
| explanation<mark style="color:red;">\*</mark> | String | 카드 설명       |
| deadline<mark style="color:red;">\*</mark>    | String | 카드 마감일      |

{% tabs %}
{% tab title="200: OK 카드가 생성되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 생성에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 목록 조회&#x20;

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/list/:lid/card`

#### Headers

| Name | Type   | Description |
| ---- | ------ | ----------- |
| bid  | number | 보드아이디       |
| lid  | number | 리스트아이디      |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}

{% tab title="404: Not Found 조회할 카드가 없습니다." %}

{% endtab %}
{% endtabs %}

## 카드 수정

<mark style="color:orange;">`PUT`</mark> `localhost:3000/api/board/:bid/list/:lid/card/:cid`

#### Headers

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark> | number | 보드아이디       |
| lid<mark style="color:red;">\*</mark> | number | 리스트아이디      |
| cid<mark style="color:red;">\*</mark> | number | 카드아이디       |

#### Request Body

| Name                                          | Type   | Description |
| --------------------------------------------- | ------ | ----------- |
| title<mark style="color:red;">\*</mark>       | String | 수정할 카드 제목   |
| color<mark style="color:red;">\*</mark>       | String | 수정할 카드 색상   |
| explanation<mark style="color:red;">\*</mark> | String | 수정할 카드 설명   |

{% tabs %}
{% tab title="200: OK 카드 수정에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 수정에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 마감일 수정

<mark style="color:purple;">`PATCH`</mark> `localhost:3000/api/board/:bid/list/:lid/card/:cid`

#### Headers

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark> | number | 보드아이디       |
| lid<mark style="color:red;">\*</mark> | number | 리스트아이디      |
| cid<mark style="color:red;">\*</mark> | number | 카드아이디       |

#### Request Body

| Name                                          | Type | Description |
| --------------------------------------------- | ---- | ----------- |
| deadline<mark style="color:red;">\*</mark>    | date | 기존 마감일      |
| NewDeadline<mark style="color:red;">\*</mark> | date | 수정한 마감일     |

{% tabs %}
{% tab title="200: OK 마감일 수정에 성공하였습니다" %}

{% endtab %}

{% tab title="400: Bad Request 마감일 수정에 실패하였습니다" %}

{% endtab %}
{% endtabs %}

## 카드 삭제

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/board/:bid/list/:lid`

#### Headers

| Name                                  | Type    | Description |
| ------------------------------------- | ------- | ----------- |
| lid<mark style="color:red;">\*</mark> | integer | 리스트 아이디     |

#### Request Body

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| cid<mark style="color:red;">\*</mark> | number | 삭제할 카드 아이디  |

{% tabs %}
{% tab title="200: OK 카드가 삭제되었습니다." %}

{% endtab %}

{% tab title="404: Not Found 찾을수 없는 카드입니다." %}

{% endtab %}

{% tab title="401: Unauthorized 권한이 없습니다." %}

{% endtab %}
{% endtabs %}

### 카드 매니저 API

## 카드 매니저 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/card/:cid/manager`

#### Headers

| Name | Type   | Description |
| ---- | ------ | ----------- |
| uid  | number | 유저ID        |
| cid  | number | 카드ID        |

{% tabs %}
{% tab title="200: OK 매니저 조회에 성공 했습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 조회에 실패 했습니다." %}

{% endtab %}
{% endtabs %}

## 카드 매니저 추가

<mark style="color:green;">`POST`</mark> `localhost:3000/api/board/:bid/card/:cid/manager`

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
| uid  | number |             |
| cid  | number |             |

{% tabs %}
{% tab title="200: OK 카드 매니저 추가에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 매니저 추가에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 매니저 변경

<mark style="color:orange;">`PUT`</mark> `localhost:3000/api/board/:bid/card/:cid/manager/:uid`

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
| uid  | number |             |
| cid  | number |             |

{% tabs %}
{% tab title="200: OK 카드 매니저 변경에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 매니저 변경에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 매니저 삭제&#x20;

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/board/:bid/card/:cid/manager/:uid`

{% tabs %}
{% tab title="200: OK 카드 매니저 삭제에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 매니저 삭제에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

### 순서 변경 API

## 리스트 순서 변경

<mark style="color:green;">`POST`</mark> `localhost:3000/api/list/:lid/order`

#### Request Body

| Name  | Type | Description |
| ----- | ---- | ----------- |
| order | int  |             |

{% tabs %}
{% tab title="200: OK 순서 변경에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 순서 변경에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

## 카드 순서 변경

<mark style="color:green;">`POST`</mark> `localhost:3000/api/card/:cid/order`

{% tabs %}
{% tab title="200: OK 카드 순서 변경에 성공하였습니다." %}

{% endtab %}

{% tab title="400: Bad Request 카드 순서 변경에 실패하였습니다." %}

{% endtab %}
{% endtabs %}

### 댓글 API

## 댓글생성

<mark style="color:green;">`POST`</mark> `localhost:3000/api/board/:bid/card/:cid/comment`

#### Path Parameters

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark> | number | 보드 아이디      |
| cid<mark style="color:red;">\*</mark> | number | 카드 아이디      |

#### Request Body

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| comment<mark style="color:red;">\*</mark> | String | 댓글          |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}

{% tab title="401: Unauthorized " %}

{% endtab %}
{% endtabs %}

## 댓글 목록 전체 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/card/:cid/comment`

#### Path Parameters

| Name                                  | Type   | Description |
| ------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark> | number | 보드 아이디      |
| cid<mark style="color:red;">\*</mark> | number | 카드 아이디      |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}

{% tab title="401: Unauthorized " %}

{% endtab %}
{% endtabs %}

## 댓글 1개 조회

<mark style="color:blue;">`GET`</mark> `localhost:3000/api/board/:bid/card/:cid/comment/:commentId`

#### Path Parameters

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| bid<mark style="color:red;">\*</mark>       | number | 보드 아이디      |
| cid<mark style="color:red;">\*</mark>       | number | 카드 아이디      |
| commentId<mark style="color:red;">\*</mark> | number | 댓글 아이디      |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}

{% tab title="401: Unauthorized " %}

{% endtab %}
{% endtabs %}

## 댓글 수정

<mark style="color:orange;">`PUT`</mark> `localhost:3000/api/board/:bid/card/:cid/comment/:commentid`

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| commentid<mark style="color:red;">\*</mark> | number | 수정할 코멘트 아이디 |

#### Request Body

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| comment<mark style="color:red;">\*</mark> | String | 수정할 댓글 내용   |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}

{% tab title="404: Not Found 수정 내용을 입력해주세요" %}

{% endtab %}

{% tab title="400: Bad Request 존재하지 않는 댓글입니다." %}

{% endtab %}
{% endtabs %}

## 댓글 삭제

<mark style="color:red;">`DELETE`</mark> `localhost:3000/api/board/:bid/card/:cid/comment/:commentId`

{% tabs %}
{% tab title="200: OK 댓글이 삭제 되었습니다." %}

{% endtab %}

{% tab title="400: Bad Request 댓글이 삭제 되었습니다." %}

{% endtab %}
{% endtabs %}
