Repository navigation
API Document
- WINE
- USER
- COMMENT
- WISHLIST
와인에 대한 정보를 요청합니다.
https://buenosvinosserver.ga/wine
request URL에서 다음과 같은 Query parameter에 대해 값을 제공합니다.
값을 지정하지 않는 경우에 해당 항목에 대해 모든 와인을 반환합니다.
| Parameter | Type | Description |
|---|---|---|
| id | integer | 와인의PK ID를 입력합니다 |
| name | string | 찾고자 하는 와인의 이름을 입력합니다 |
| sweet_min | integer | 필터링 하고자 하는 당도의 최솟값을 입력합니다 |
| sweet_max | integer | 필터링 하고자 하는 당도의 최댓값을 입력합니다 |
| acidic_min | integer | 필터링 하고자 하는 산도의 최솟값을 입력합니다 |
| acidic_max | integer | 필터링 하고자 하는 산도의 최댓값을 입력합니다 |
| body_min | integer | 필터링 하고자 하는 바디감의 최솟값을 입력합니다 |
| body_max | integer | 필터링 하고자 하는 바디감의 최댓값을 입력합니다 |
| type[] | array | 와인의 타입을 입력합니다 ex)레드, 화이트, 스파클링, 로제 |
| rating | number | 별점을 입력합니다(1자릿수의 소수) ex) 2.0 |
| country[] | array | 국가를 입력합니다 |
| food[] | array | 안주를 지정합니다 |
https://buenosvinosserver.ga/wine?sweet_min=1&sweet_max=5&acidic_min=1&acidic_max=5&body_min=1&body_max=5&rating=3.0&name=도스 코파스[
{
"id": 6,
"name": "도스 코파스 샤도네이",
"name_en": "Dos Copas Chardonnay",
"image": "https://penzim.synology.me/image/finalProject/wine_image/6.png",
"body": 3,
"sweet": 1,
"acidic": 4,
"alcohol_content": "13",
"winery": "Bodega y Vinedos de Aguirre S.A.",
"content": "밝은 노란 빛을 띠고 열대 과일의 진한 향이 느껴진다. 복숭아와 파인애플의 맛이 프레시하게 조화를 이루며 지속력이 뛰어나다. 신선한 치즈나 해산물, 그린 샐러드 등과 좋은 궁합을 보여준다. 지중해성 기후와 큰 일교차가특징인 칠레 마울레 밸리의 Villa Alegre 에서 수확한 포도로 풍부한 탄닌과 훌륭한 향이 돋보이는 와인이 다",
"rating_sum": 799,
"rating_count": 258,
"createdAt": "2020-12-02T00:00:00.000Z",
"rating": 3.0968992248062017,
"type": {
"id": 2,
"name": "화이트",
"type_content": "와인은 색에 따라 레드와인(Red wine), 로제와인(Rose wine), 화이트 와인(White wine)으로 나뉘는데, 이 중 청포도 계열 포도로 제조되는 와인으로 프랑스어로 뱅 블랑(Vin Blanc)이라고 한다. 화이트와인은 껍질과 씨에 포함되어 있는 타닌(Tannin)이 레드와인에 비해 상대적으로 적어 색은 연한 황금 빛이고 떫은 맛보다는 순하고 상큼, 신선한 맛이 난다. 레드와인에서 천연 항산화제 역할을 하는 타닌(Tannin)의 함량이 적기 때문에 대부분 장기 보관, 숙성을 하지 않고 시음하는 것이 좋다. 대표적인 화이트와인의 품종으로는 샤르도네(Chardonnay), 쇼비뇽 블랑(Sauvignon Blanc), 리슬링(Riesling), 세미용(Semillon), 피노 그리지오(Pinot Grigio), 게부르츠트라미너(Gewurztraminer), 슈냉 블랑(Chenin Blanc), 무스카트(Muscat), 무스카데(Muscadet), 피노블랑(Pinot Blanc), 뮐러 트루가우(Muller-thurgau) 등이 있다. 화이트와인의 색은 숙성될수록 진해지는데, 처음에는 은빛-녹빛(Yellow-Green)에서 점차 토파즈 빛으로 진행되며 오래되면 오렌지 빛이나 밤색이 도는 구리 빛이 된다. 화이트와인의 색에서 얻을 수 있는 정보는 풍부하지 않지만 갈색은 좋지 않다는 신호로 오래 숙성될수록 색이 진해지는데 갈색으로 변할 단계가 되면 심하게 산화되거나 갈변하여 맛이 없어진다. 대체적으로 색이 옅은 와인은 서늘한 기후에서, 노란색이 짙은 와인은 따뜻한 지역에서 생산된다. 예외적으로 귀부포도로 만든 스위트와인과 오크통에서 숙성시킨 와인은 색이 진하다. 적정 시음 온도는 5~10℃정도로 차게 해서 마시는 것이 좋고, 일반적인 알코올 농도는 10~13%로 레드와인에 비해 약간 낮다. 일반적으로 생선요리나 채소류, 향이 강하지 않은 담백한 요리, 향이 부드러운 치즈와 잘 어울리며 색이 희고 맛과 향이 강하지 않기 때문에 생선요리를 할 때 잡 내를 없애기 위해 화이트 와인을 주로 이용한다. 그러나 음식과의 궁합은 각 와인의 특징에 따라 꼭 정해진 것은 아니며, 레드 와인을 마시기 전에 마시는 것이 보편적이다. 화이트 와인의 잔은 레드와인에 비해 덜 오목한데, 화이트 와인의 맛을 잘 볼 수 있도록 와인이 혀 앞부분에 떨어지도록 하기 위함이다",
"sweet_content": "와인에서 당도(Sweetness)는 포도과즙이 발효되면서 알코올로 변환되는데 변환되지 않고 남겨진 당도를 잔여 당분이라한다. 주로 화이트 와인에서 이 단어를 자주 사용하게 되는데 와인의 단 맛은 실질적으로 당도가 높아서 나타날 수도 있고, 알코올 도수가 높아서 생기는 것일 수도 있다. 유의해야 할 점으로는 fruity한 (과일향이 나는)것과 sweet한 (단 맛이 나는) 것은 다르다는 점이다. 과일향이 나는것은 화이트 와인의 냄새를 맡았을 때 신선한 과일향이 풍부하게 나면서 과일 특유의 달콤한 냄새들이 기억 속에 저장된 후에 혀로 와인 맛을 보게 되는 과정에서 일어나는 현상이고, 단 맛이 나는 것은 혀로 느껴지는 맛이다.",
"acidic_content": "와인의 산도(Acidity)는 주로 포도 알갱이에서 찾아볼 수 있는 주석산 (tartaric acid)에 의해 결정된다. 이 산도는 와인에 따라 다르며 레드 와인보다는 화이트 와인의 맛을 평가 할 때 더 자주 사용된다. 화이트 와인이 갖는 산도는 곧 와인 자체의 골격을 상징하기 때문이다. 혀의 양쪽 부분에서 이 산도를 감지하고, 산도가 높은 화이트 와인은 생동감 있고 신선하다는 느낌을 주는 반면에, 산도가 낮은 와인은 밋밋하고 김빠진 듯한 느낌을 준다.",
"body_content": "와인의 바디(body)란 와인을 마셨을 때 입 안에서 느껴지는 부피감이나 중량감을 의미한다. 당도,산도,타닌 그리고 알코올은 가벼운지 묵직한지를 표현한 와인의 바디에 영향을 준다. 와인을 마실 때마다 느껴지는 '감'에 따라 와인은 '바디가 약한, 중간 정도의 바디, 혹은 바디가 묵직한' 등으로 표현될 수 있다."
},
"country": {
"id": 7,
"name": "칠레",
"image": "https://penzim.synology.me/image/finalProject/country/chile-flag-round-icon-128.png"
},
"food": [
{
"id": 10,
"name": "해산물",
"image": "https://penzim.synology.me/image/finalProject/icon/seafood.png"
}
],
"comment": [],
"wishlist": []
}
]로그인을 요청합니다.
https://buenosvinosserver.ga/auth/login
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| string | 로그인할 유저의 email을 담습니다 | |
| password | string | 로그인할 유저의 password를 담습니다 |
| string | google social로그인의 경우 반환된 tokenId를 담습니다 | |
| kakao | string | kakao social로그인의 경우 반환된 access_token을 담습니다 |
| facebookId | string | facebook social로그인의 경우 반환된 id를 담습니다 |
| facebookToken | string | facebook social로그인 시 반환된 accessToken을 담습니다 ※ facebook 로그인 시 facebookId와 facebookToken은 모두 담겨있어야 합니다 |
https://buenosvinosserver.ga/auth/login200OK
{
"userId": 107,
"nickname": "ant7",
"wishlist": {
"id": 107,
"wishlist": [
{
"id": 1,
"rating": null
}
]
}
}400 Bad Request
"아이디와 비밀번호를 입력해 주세요"401 Unauthorized
"비밀번호를 확인해 주세요"401 Unauthorized
"존재하지 않는 유저 입니다"로그아웃을 요청합니다
https://buenosvinosserver.ga/user/logout
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
https://buenosvinosserver.ga/user/logout200OK
"성공적으로 로그아웃 되었습니다"회원가입을 요청합니다.
https://buenosvinosserver.ga/user
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| string | 회원가입할 email을 담습니다 | |
| password | string | 사용할 비밀번호를 담습니다 |
| nickname | string | 사용할 별명을 담습니다 |
https://buenosvinosserver.ga/user200OK
"User created"409Conflict
"이미 존재하는 별명입니다"유저의 정보를 요청합니다.
https://buenosvinosserver.ga/user
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
https://buenosvinosserver.ga/user200OK
{
"id": 107,
"email": "test7",
"nickname": "ant7",
"comment": [],
"wishlist": [
{
"id": 1,
"name": "도스코파스 까베르네 소비뇽",
"name_en": "Dos Copas Cabernet Sauvignon",
"image": "https://penzim.synology.me/image/finalProject/wine_image/1.png",
"body": 3,
"sweet": 1,
"acidic": 3,
"alcohol_content": "13",
"winery": "Bodega y Vinedos de Aguirre S.A.",
"content": "진한 붉은색을 띠고 검은 과일이 농축된 듯한 진한 향이 느껴진다. 적절한 산미와 힘이 넘치는 탄닌이 절묘한 균형을 만들어 낸다. 그릴에 구운 육류나, 오리 요리, 불고기등과 좋은 궁합을 보여준다. 칠레의 마울레 밸리의 토양은 화산재와 점토질로 이루어져 있으며, 포도밭의 일조량이 좋아 품질 좋은 포도를 생산하기에 안성맞춤이다.",
"rating_sum": 1433,
"rating_count": 597,
"rating": 2.4003350083752095,
"type": {
"name": "레드"
},
"country": {
"name": "칠레"
},
"food": [
{
"name": "돼지고기"
},
{
"name": "소고기"
}
]
}
]
}401 Unauthorized
"권한이 없으신데요?"유저의 정보를 수정합니다.
https://buenosvinosserver.ga/user
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| nickname | string | 변경할 user의 nickname을 담습니다 |
https://buenosvinosserver.ga/user200OK
"성공적으로 변경되었습니다"401 Unauthorized
"권한이 없으신데요?"유저의 비밀번호를 변경합니다.
https://buenosvinosserver.ga/auth/changepw
| Name | Value |
|---|---|
| userId | user의 PK ID |
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| oldPassword | string | 기존 비밀번호를 담습니다 |
| newPassword | string | 변경할 새 비밀번호를 담습니다 |
https://buenosvinosserver.ga/auth/changepw200OK
"비밀번호가 변경되었습니다"400 Bad Request
[
{
"target": {
"id": 107,
"email": "test7",
"nickname": "ant7",
"password": "1",
"google": null,
"facebook": null,
"kakao": null,
"createdAt": "2020-12-17T15:58:43.656Z"
},
"value": "1",
"property": "password",
"children": [],
"constraints": {
"length": "password must be longer than or equal to 4 characters"
}
}
]401 Unauthorized
"권한이 없으신데요?"유저의 정보를 요청합니다.
https://buenosvinosserver.ga/auth
| Name | Value |
|---|---|
| Authorization | user에 발급된 JWT |
https://buenosvinosserver.ga/auth200OK
"is logined"401 Unauthorized
"권한이 없으신데요?"와인에 대한 리뷰를 작성합니다
https://buenosvinosserver.ga/comment
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| wineId | integer | 리뷰 할 와인의 PK ID |
| comment | string | 리뷰 내용 |
| rating | number | 와인에 대한 평점 |
https://buenosvinosserver.ga/comment200OK
"코멘트가 작성되었습니다."401 Unauthorized
"권한이 없으신데요?"와인에 대한 리뷰를 수정합니다
https://buenosvinosserver.ga/comment
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| commentId | integer | 수정할 comment의 PK ID |
| comment | string | 리뷰 내용 |
| rating | number | 와인에 대한 평점 |
https://buenosvinosserver.ga/comment200OK
{
"id": 82,
"content": "수정된 코멘트",
"rating": 3,
"createdAt": "2020-12-20T00:25:36.212Z",
"wine": {
"id": 1,
"name": "도스코파스 까베르네 소비뇽",
"name_en": "Dos Copas Cabernet Sauvignon",
"image": "https://penzim.synology.me/image/finalProject/wine_image/1.png",
"body": 3,
"sweet": 1,
"acidic": 3,
"alcohol_content": "13",
"winery": "Bodega y Vinedos de Aguirre S.A.",
"content": "진한 붉은색을 띠고 검은 과일이 농축된 듯한 진한 향이 느껴진다. 적절한 산미와 힘이 넘치는 탄닌이 절묘한 균형을 만들어 낸다. 그릴에 구운 육류나, 오리 요리, 불고기등과 좋은 궁합을 보여준다. 칠레의 마울레 밸리의 토양은 화산재와 점토질로 이루어져 있으며, 포도밭의 일조량이 좋아 품질 좋은 포도를 생산하기에 안성맞춤이다.",
"rating_sum": 1436,
"rating_count": 598,
"createdAt": "2020-12-02T00:00:00.000Z",
"rating": 2.4013377926421406
}
}401 Unauthorized
"권한이 없으신데요?"와인에 대한 리뷰를 작성합니다
https://buenosvinosserver.ga/comment
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Body parameter에 대해 반환 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| commentId | integer | 삭제할 코멘트의 PK ID |
https://buenosvinosserver.ga/comment200OK
"Review is Deleted"401 Unauthorized
"권한이 없으신데요?"와인을 위시리스트에 추가합니다.
https://buenosvinosserver.ga/wine/wishlist/id
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Path parameter에 대해 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| id | integer | 와인의PK ID |
https://buenosvinosserver.ga/wine/wishlist/id201 Created
"위시리스트가 추가되었습니다."401 Unauthorized
"권한이 없으신데요?"409 Conflict
"이미 위시리스트에 추가된 와인입니다"위시리스트에 담긴 와인을 삭제합니다.
https://buenosvinosserver.ga/wine/wishlist/id
| Name | Value |
|---|---|
| userId | user의 PK ID |
| Authorization | user에 발급된 JWT |
request URL에서 다음과 같은 Path parameter에 대해 값을 제공합니다.
| Parameter | Type | Description |
|---|---|---|
| id | integer | 와인의PK ID |
https://buenosvinosserver.ga/wine/wishlist/id200OK
"위시리스트가 삭제되었습니다."401 Unauthorized
"권한이 없으신데요?"