# posts

1. 게시글 카테고리 별 전체조회

## 게시글 카테고리 별 전체 조회

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/posts/categories/{category}/{page_num}`

게시글을 카테고리별로 전체 조회합니다

#### Path Parameters

| Name                                       | Type    | Description |
| ------------------------------------------ | ------- | ----------- |
| category<mark style="color:red;">\*</mark> | Integer | 게시글의 카테고리 값 |

{% tabs %}
{% tab title="200: OK 제목, 내용, 작성자 (+조회수)" %}

{% endtab %}

{% tab title="400: Bad Request 게시글 카테고리별 조회 실패" %}

{% endtab %}
{% endtabs %}

## 게시글 카테고리 별 검색 조회&#x20;

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/posts/categories/{category}/titles/{page_num}`

#### Path Parameters

| Name                                        | Type    | Description |
| ------------------------------------------- | ------- | ----------- |
| category<mark style="color:red;">\*</mark>  | Integer | 카테고리 값      |
| page\_num<mark style="color:red;">\*</mark> | Integer | 페이지 번호 값    |

{% tabs %}
{% tab title="200: OK 제목, 내용, 작성자 (+조회수)" %}

{% endtab %}

{% tab title="400: Bad Request 실패 메세지" %}

{% endtab %}
{% endtabs %}

## 메인 페이지 카테고리 별 5개씩 조회 (아직 구현 방법 미정) url 수정도 해야됨

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/posts/categories/{category}`

#### Path Parameters

| Name                               | Type    | Description |
| ---------------------------------- | ------- | ----------- |
| <mark style="color:red;">\*</mark> | Integer | category번호  |

{% tabs %}
{% tab title="200: OK 게시물 내용" %}

{% endtab %}

{% tab title="400: Bad Request 조회 실패 " %}

{% endtab %}
{% endtabs %}

2. 게시글 단건 조회 (댓글포함)

## 게시글 단건 조회

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/posts/{post_id}`

게시글 한 건을 조회합니다

#### Path Parameters

| Name                                       | Type | Description |
| ------------------------------------------ | ---- | ----------- |
| post\_id<mark style="color:red;">\*</mark> | Long | 게시글 id      |

#### Cookies

| Name                                            | Type   | Description                 |
| ----------------------------------------------- | ------ | --------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer ezblkwjflwekjlsfkjgs |

{% tabs %}
{% tab title="200: OK 제목, 작성자, 작성일자, 카테고리, 내용, 모집여부, 첨부파일" %}

{% endtab %}

{% tab title="400: Bad Request 게시글 단건 조회 실패" %}

{% endtab %}
{% endtabs %}

3. 게시글 작성

## 게시글 작성

<mark style="color:green;">`POST`</mark> `http://localhost:8080/api/posts`

게시글을 작성합니다

#### Cookies

| Name                                            | Type   | Description                     |
| ----------------------------------------------- | ------ | ------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer ezlfksjelkjslfksjflksjdf |

#### Request Body

| Name                                        | Type    | Description                                  |
| ------------------------------------------- | ------- | -------------------------------------------- |
| title<mark style="color:red;">\*</mark>     | String  | 게시글 제목                                       |
| content<mark style="color:red;">\*</mark>   | String  | 게시글 내용                                       |
| completed<mark style="color:red;">\*</mark> | Boolean | <p>모집 중 / 모집 완료<br>(협업 팀원 모집, 스터디 모집 경우)</p> |
| category<mark style="color:red;">\*</mark>  | String  | 게시글 카테고리                                     |
| files                                       | File    | 게시글 첨부 이미지                                   |

{% tabs %}
{% tab title="200: OK 제목, 내용, 카테고리, 이미지, 모집여부, 작성자, 작성일자" %}

{% endtab %}

{% tab title="400: Bad Request 게시글 작성 실패" %}

{% endtab %}
{% endtabs %}

4. 게시글 수정

## 게시글 수정

<mark style="color:orange;">`PUT`</mark> `http://localhost:8080/api/posts/{post_id}`

게시글을 수정합니다

#### Path Parameters

| Name                                       | Type | Description |
| ------------------------------------------ | ---- | ----------- |
| post\_id<mark style="color:red;">\*</mark> | Long | 게시글 id      |

#### Cookies

| Name                                            | Type   | Description                      |
| ----------------------------------------------- | ------ | -------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer exlskjdflkjlkzjlfkjlskejf |

#### Request Body

| Name                                        | Type    | Description  |
| ------------------------------------------- | ------- | ------------ |
| title<mark style="color:red;">\*</mark>     | String  | 게시글 제목       |
| content<mark style="color:red;">\*</mark>   | String  | 게시글 내용       |
| category<mark style="color:red;">\*</mark>  | String  | 게시글 카테고리     |
| files                                       | File    | 첨부파일         |
| completed<mark style="color:red;">\*</mark> | Boolean | 모집 중 / 모집 완료 |

{% tabs %}
{% tab title="200: OK 제목, 내용, 카테고리, 이미지, 모집여부, 작성자, 작성일자" %}

{% endtab %}

{% tab title="400: Bad Request 게시글 수정 실패" %}

{% endtab %}
{% endtabs %}

5. 게시글 삭제

## 게시글 삭제

<mark style="color:red;">`DELETE`</mark> `http://localhost:8080/api/posts/{post_id}`

게시글을 삭제합니다

#### Path Parameters

| Name                                       | Type | Description |
| ------------------------------------------ | ---- | ----------- |
| post\_id<mark style="color:red;">\*</mark> | Long | 게시글 id      |

#### Cookies

| Name                                            | Type   | Description                         |
| ----------------------------------------------- | ------ | ----------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer ezlksjelkajselkjdflgkdjflgkr |

{% tabs %}
{% tab title="200: OK 게시물 삭제 성공" %}

{% endtab %}

{% tab title="400: Bad Request 게시물 삭제 실패" %}

{% endtab %}
{% endtabs %}
