> For the complete documentation index, see [llms.txt](https://trip-itinerary-sns-api.gitbook.io/toyproject-03/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trip-itinerary-sns-api.gitbook.io/toyproject-03/trip/undefined.md).

# 여행 조회

## 전체 여행 리스트를 조회할 수 있습니다.&#x20;

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/trip/all`

전체 사용자는 전체 여행 리스트를 조회합니다.

{% tabs %}
{% tab title="200: OK 모든 여행 리스트를 조회합니다. " %}

```
{
    "status": "OK",
    "msg": "모든 여행 조회 완료",
    "data": [
        {
            "tripId": 3,
            "userId": 1,
            "tripName": "일본일본일본일본",
            "startDate": "2023-10-22",
            "endDate": "2023-10-29",
            "isDomestic": false,
            "tripPeriod": "7days"
        },
        {
            "tripId": 4,
            "userId": 1,
            "tripName": "~일본~",
            "startDate": "2023-03-02",
            "endDate": "2023-03-10",
            "isDomestic": false,
            "tripPeriod": "8days"
        },
        {
            "tripId": 5,
            "userId": 2,
            "tripName": "즐거운일본여행",
            "startDate": "2023-03-02",
            "endDate": "2023-03-10",
            "isDomestic": false,
            "tripPeriod": "8days"
        },
        {
            "tripId": 6,
            "userId": 3,
            "tripName": "유럽 여행",
            "startDate": "2023-03-02",
            "endDate": "2023-04-01",
            "isDomestic": true,
            "tripPeriod": "30days"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## 특정 여행 정보를 조회할 수 있습니다.&#x20;

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

전체 사용자는 특정 여행을 조회합니다.&#x20;

특정 여행 정보에는 여행, 여정들, 댓글, 좋아요 수가 있습니다.&#x20;

#### Path Parameters

| Name                                     | Type | Description |
| ---------------------------------------- | ---- | ----------- |
| tripId<mark style="color:red;">\*</mark> | Long | 여행의 id      |

{% tabs %}
{% tab title="200: OK id에 맞는 특정 여행 정보를 응답." %}

```
{
    "status": "OK",
    "msg": "상세 여행 조회 완료",
    "data": {
        "tripId": 8,
        "userId": 1,
        "tripName": "즐거운일본여행",
        "startDate": "2023-03-02",
        "endDate": "2023-03-10",
        "isDomestic": false,
        "likeCount": 3,
        "itineraryList": [
            {
                "id": 29,
                "itineraryName": "비행기",
                "itineraryOrder": 1,
                "itineraryType": "MOVEMENT",
                "departureDate": "2023-10-22T12:24:10",
                "arrivalDate": "2023-10-22T22:00:10",
                "departurePlace": "인천 공항",
                "arrivalPlace": "인천 공항",
                "timeDifference": "9h 36m",
                "departurePlaceInfo": "인천국제공항",
                "arrivalPlaceInfo": "인천국제공항"
            },
            {
                "id": 30,
                "itineraryName": "도쿄 디즈니월드",
                "itineraryOrder": 2,
                "itineraryType": "STAY",
                "departureDate": "2023-10-26T12:00:10",
                "arrivalDate": "2023-10-26T20:03:10",
                "timeDifference": "8h 3m",
                "placeInfo": "도쿄 디즈니월드"
            },
            {
                "id": 31,
                "itineraryName": "신주쿠 워싱턴 호텔",
                "itineraryOrder": 3,
                "itineraryType": "LODGEMENT",
                "placeInfo": "신주쿠 워싱턴 호텔",
                "checkIn": "2023-10-10T15:00:10",
                "checkOut": "2023-10-12T10:00:10",
                "dayDifference": "2days"
            }
        ],
        "replyList": [
            {
                "replyId": 1,
                "userId": 3,
                "tripId": 8,
                "content": "와 좋아요"
            },
            {
                "replyId": 2,
                "userId": 3,
                "tripId": 8,
                "content": "이 여행 좋아요~"
            },
            {
                "replyId": 3,
                "userId": 2,
                "tripId": 8,
                "content": "여행 굿"
            }
        ]
    }
}

```

{% endtab %}

{% tab title="403: Forbidden 이미 삭제된 여행 아이디를 입력시." %}

```
{
    "status": "FORBIDDEN",
    "code": "TRIP_ALREADY_DELETED",
    "msg": "이미 삭제된 여행 정보입니다."
}
```

{% endtab %}

{% tab title="404: Not Found 여행 id가 없는 여행 정보일 경우" %}

```
{
    "status": "NOT_FOUND",
    "code": "NO_SUCH_TRIP",
    "msg": "해당하는 여행 정보가 없습니다."
}
```

{% endtab %}
{% endtabs %}

## 키워드를 통한 특정 여행 정보를 검색합니다.&#x20;

<mark style="color:blue;">`GET`</mark> `http://localhost:8080/api/trip/search`

전체 사용자는 여행을 특정 키워드로 검색 가능합니다.

#### Query Parameters

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| keyword<mark style="color:red;">\*</mark> | String | 이름 검색 키워드   |

{% tabs %}
{% tab title="200: OK 키워드가 포함된 모든 여행 출력." %}

```
{
    "status": "OK",
    "msg": "여행 검색 완료",
    "data": [
        {
            "tripId": 3,
            "userId": 1,
            "tripName": "즐거운일본여행",
            "startDate": "2023-03-02",
            "endDate": "2023-03-10",
            "isDomestic": false,
            "tripPeriod": "8days"
        },
        {
            "tripId": 4,
            "userId": 2,
            "tripName": "~일본~",
            "startDate": "2023-03-02",
            "endDate": "2023-03-10",
            "isDomestic": false,
            "tripPeriod": "8days"
        },
        {
            "tripId": 5,
            "userId": null,
            "tripName": "일본일본일본일본",
            "startDate": "2023-10-22",
            "endDate": "2023-10-29",
            "isDomestic": false,
            "tripPeriod": "7days"
        },
        {
            "tripId": 6,
            "userId": 1,
            "tripName": "일본여행",
            "startDate": "2023-11-13",
            "endDate": "2023-11-15",
            "isDomestic": false,
            "tripPeriod": "2days"
        },
        {
            "tripId": 7,
            "userId": 2,
            "tripName": "일본여행",
            "startDate": "2023-11-13",
            "endDate": "2023-11-15",
            "isDomestic": false,
            "tripPeriod": 20days"
        }
    ]
}

```

{% endtab %}

{% tab title="200: OK 키워드에 검색된 여행이 없을 경우" %}

```
{
    "status": "OK",
    "msg": "검색된 여행이 없습니다.",
    "data": null
}

```

{% endtab %}

{% tab title="400: Bad Request 1글자\~15글자 사이의 길이 아닐 경우" %}

```
{
    "status": "BAD_REQUEST",
    "code": "BAD_REQUEST",
    "msg": "검색어 길이는 1글자 ~ 15글자 사이어야 합니다."
}
```

{% endtab %}

{% tab title="400: Bad Request 공백 입력할 경우" %}

```
{
    "status": "BAD_REQUEST",
    "code": "BAD_REQUEST",
    "msg": "검색어를 채워주세요"
}
```

{% endtab %}
{% endtabs %}
