개요

HTTP 동사

본 REST API에서 사용하는 HTTP 동사(verbs)는 가능한한 표준 HTTP와 REST 규약을 따릅니다.

동사 용례

GET

리소스를 가져올 때 사용

POST

새 리소스를 만들 때 사용

PUT

기존 리소스를 수정할 때 사용

DELETE

기존 리소스를 삭제할 떄 사용

HTTP 상태 코드

본 REST API에서 사용하는 HTTP 상태 코드는 가능한한 표준 HTTP와 REST 규약을 따릅니다.

상태 코드 용례

200 OK

요청을 성공적으로 처리함

201 Created

새 리소스를 성공적으로 생성함. 응답의 Location 헤더에 해당 리소스의 URI가 담겨있다.

204 No Content

기존 리소스를 성공적으로 수정함.

400 Bad Request

잘못된 요청을 보낸 경우. 응답 본문에 더 오류에 대한 정보가 담겨있다.

403 Forbidden

서버가 허용하지 않는 리소스를 사용자가 요청할 때 발생한다.

404 Not Found

요청한 리소스가 없음.

Error

에러 응답이 발생했을 때 (상태 코드 >= 300), 본문에 해당 문제를 기술한 JSON 객체가 담겨있다. 에러 객체는 다음의 구조를 따른다.

Response fields

Path Type Description

resultCode

Number

결과코드

message

String

결과메시지

details

String

에러상세설명

_links.documentation_url.href

String

문서 링크

예를 들어, 서버가 허용하지 않는 리소스를 사용자가 요청할 때 다음과 같은 403 Forbidden 응답을 받는다.

Example response

HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 228

{
  "resultCode" : 13,
  "message" : "권한이 없습니다",
  "details" : "uri=/403error",
  "_links" : {
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#overview-errors"
    }
  }
}

Result Code

에러 응답의 resultCode 필드의 명세는 다음과 같다.

ResponseState Code

코드 설명

100

기타에러입니다.

0

성공하였습니다.

10

잘못된 요청 파라메터 에러입니다.

11

필수요청 파라미터가 없습니다.

12

데이터를 찾을 수 없습니다.

13

서비스 접근이 거부되었습니다.

14

중복된 데이터입니다.

15

잘못된 URI입니다.

16

토큰 에러입니다.

17

OAuth 인증에러 입니다.

Common Code

TallType

키의 분류에 대한 코드를 나타낸다.

TallType Code

코드 설명

SMALL

작음

LITTEL_SMLL

살짝 작음

NORMAL

평균

LITTLE_TALL

살짝 큼

TALL

BodyType

전체적인 몸의 형태를 설명한다.

BodyType Code

코드 설명

SKINNY

날씬

SLIM

슬림

NORMAL

보통

LITTLE_CHUBBY

약간 통통

CHUBBY

통통

LocationCategory

사는 지역을 나타낸다.

LocationCategory Code

코드 설명

SEOUL

서울

BUSAN

부산

DAEGU

대구

INCHUN

인천

GWANGJU

광주

DAEJUN

대구

ULSAN

울산

SEJONG

세종

GYEONGGI

경기

GANGWAON

강원

CHUNGBUK

충북

CHUNGNAM

충남

JUNBUK

전북

JUNNAM

전남

GYEONGNAM

경남

GYEONGBUK

경북

JEJU

제주

하이퍼미디어

본 REST API는 하이퍼미디어와 사용하며 응답에 담겨있는 리소스는 다른 리소스에 대한 링크를 가지고 있다. 응답은 Hypertext Application from resource to resource. Language (HAL) 형식을 따른다. 링크는 `_links`라는 키로 제공한다. 본 API의 사용자(클라이언트)는 URI를 직접 생성하지 않아야 하며, 리소스에서 제공하는 링크를 사용해야 한다.

User

유저 리소스는 회원가입 및 로그인에 사용된다.

Join

POST 요청을 사용해서 회원 가입을 할 수 있다.

Request headers

Name Description

Accept

ACCEPT HEADER: HAL_JSON

Content-Type

CONTENT_TYPE: APPLICAITON_JSON_UTF

Request fields

Path Type Description

email

String

회원의 이메일

password

String

회원의 비밀번호

nickName

String

회원의 닉네임

sexType

String

회원의 성별

detailProfiles.tallType

String

회원의 신장

detailProfiles.bodyType

String

회원의 체격

detailProfiles.locationCategory

String

회원의 거주지

dreamProfiles.tallType

String

이상형의 신장

dreamProfiles.bodyType

String

이상형의 체격

dreamProfiles.locationCategory

String

이상형의 거주지

kakaoId

String

회원의 카카오톡 ID

HTTP request

POST /v1/join HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/hal+json
Content-Length: 386
Host: localhost:8080

{
  "email" : "px2007@naver.com",
  "password" : "password123",
  "nickName" : "피엑스맛나",
  "kakaoId" : "px2007",
  "dreamProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "CHUBBY",
    "locationCategory" : "BUSAN"
  },
  "detailProfiles" : {
    "tallType" : "NORMAL",
    "bodyType" : "SKINNY",
    "locationCategory" : "BUSAN"
  },
  "sexType" : "MAN"
}

Response headers

Name Description

Content-Type

CONTENT_TYPE: APPLICAITON_JSON_VALUE

Response fields

Path Type Description

email

String

회원의 이메일

nickName

String

회원의 닉네임

_links.login.href

String

로그인 링크

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 269

{
  "email" : "px2007@naver.com",
  "nickName" : "피엑스맛나",
  "_links" : {
    "login" : {
      "href" : "http://localhost:8080/v1/login"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#user-join"
    }
  }
}
Relation Description

login

로그인 링크

documentation_url

문서 링크

Login

POST 요청을 사용해서 OAuth-Token을 얻을 수 있다.

Request headers

Name Description

Authorization

Authorizaiton: Basic

Request parameters

Parameter Description

username

사용자 Email

password

사용자 password

grant_type

Grant_Type

HTTP request

POST /oauth/token HTTP/1.1
Authorization: Basic bXlBcHA6cGFzcw==
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded

username=px2007%40naver.com&password=password123&grant_type=password

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

access_token

String

Access_Token

token_type

String

Token_Type

refresh_token

String

Refresh_Token

expires_in

Number

Expires_in

scope

String

Scope

jti

String

Jti

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 850

{
  "access_token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc",
  "token_type" : "bearer",
  "refresh_token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJweDIwMDdAbmF2ZXIuY29tIiwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImF0aSI6IjQ2M2FlOGE5LThlODMtNGQwZi1hMTVmLTJkYjQ0ZDhjYzhhYiIsImV4cCI6MTYxNTg4MzQzMSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6ImM1MzM2ZjRmLTQ3NTEtNDc2Ni1hZWEzLTRiMGQxMGIwNGRhZiIsImNsaWVudF9pZCI6Im15QXBwIn0.0TpoX9DEsVTcy9UC1BPfhT60hb1wB20Cnc1_bVnTCtE",
  "expires_in" : 3596,
  "scope" : "read write",
  "jti" : "463ae8a9-8e83-4d0f-a15f-2db44d8cc8ab"
}

GET

GET 요청을 사용해서 사용자 정보를 조회할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

GET /v1/user HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

회원 Primary Key

email

String

회원의 이메일

nickName

String

회원의 닉네임

posts

Number

회원이 작성한 게시물 수

comments

Number

회원이 작성한 댓글 수

detailProfiles.tallType

String

회원의 신장

detailProfiles.bodyType

String

회원의 체격

detailProfiles.locationCategory

String

회원의 거주지

dreamProfiles.tallType

String

이상형의 신장

dreamProfiles.bodyType

String

이상형의 체격

dreamProfiles.locationCategory

String

이상형의 거주지

lastMatchingDate

class java.time.LocalDate

회원의 마지막 참가 소개팅 날짜

kakaoId

String

회원의 카카오톡 ID

sexType

String

회원의 성별

_links.self.href

String

Self link

_links.posts.href

String

내가 쓴 게시물 조회 링크

_links.comments.href

String

내가 쓴 댓글 조회 링크

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 759

{
  "id" : 19,
  "email" : "px2007@naver.com",
  "nickName" : "피엑스맛나",
  "posts" : 0,
  "comments" : 0,
  "detailProfiles" : {
    "tallType" : "NORMAL",
    "bodyType" : "SKINNY",
    "locationCategory" : "BUSAN"
  },
  "dreamProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "CHUBBY",
    "locationCategory" : "BUSAN"
  },
  "kakaoId" : "px2007",
  "sexType" : "MAN",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/user"
    },
    "posts" : {
      "href" : "http://localhost:8080/v1/user/posts"
    },
    "comments" : {
      "href" : "http://localhost:8080/v1/user/comments"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_get"
    }
  }
}
Relation Description

self

Self link

posts

내가 쓴 게시물 목록

comments

내가 쓴 댓글 목록

documentation_url

문서 링크

UPDATE

PUT 요청을 사용해서 사용자 정보를 수정할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

PUT /v1/user HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Content-Length: 307
Host: localhost:8080

{
  "nickName" : null,
  "kakaoId" : "pknubot",
  "dreamProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "CHUBBY",
    "locationCategory" : "SEOUL"
  },
  "detailProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "SKINNY",
    "locationCategory" : "SEOUL"
  },
  "sexType" : null
}

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

회원 Primary Key

email

String

회원의 이메일

nickName

String

회원의 닉네임

sexType

String

회원의 성별

posts

Number

회원이 작성한 게시물 수

comments

Number

회원이 작성한 댓글 수

detailProfiles.tallType

String

회원의 신장

detailProfiles.bodyType

String

회원의 체격

detailProfiles.locationCategory

String

회원의 거주지

dreamProfiles.tallType

String

이상형의 신장

dreamProfiles.bodyType

String

이상형의 체격

dreamProfiles.locationCategory

String

이상형의 거주지

lastMatchingDate

class java.time.LocalDate

회원의 마지막 참가 소개팅 날짜

kakaoId

String

회원의 카카오톡 ID

_links.self.href

String

Self link

_links.posts.href

String

내가 쓴 게시물 조회 링크

_links.comments.href

String

내가 쓴 댓글 조회 링크

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 758

{
  "id" : 20,
  "email" : "px2007@naver.com",
  "nickName" : "피엑스맛나",
  "posts" : 0,
  "comments" : 0,
  "detailProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "SKINNY",
    "locationCategory" : "SEOUL"
  },
  "dreamProfiles" : {
    "tallType" : "TALL",
    "bodyType" : "CHUBBY",
    "locationCategory" : "SEOUL"
  },
  "kakaoId" : "pknubot",
  "sexType" : "MAN",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/user"
    },
    "posts" : {
      "href" : "http://localhost:8080/v1/user/posts"
    },
    "comments" : {
      "href" : "http://localhost:8080/v1/user/comments"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_get"
    }
  }
}
Relation Description

self

Self link

posts

내가 쓴 게시물 목록

comments

내가 쓴 댓글 목록

documentation_url

문서 링크

email

`email' 리소스를 통해 사용자 이메일의 존재 여부를 알 수 있다.

Path parameters

Table 1. /v1/user/email/{id}
Parameter Description

id

찾을 유저 Email

Example request

$ curl 'http://localhost:8080/v1/user/email/px2007@naver.com' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/hal+json'

Response fields

Path Type Description

found

Boolean

결과

_links.self.href

String

Self link

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Disposition: inline;filename=f.txt
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 218

{
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/user/email/px2007@naver.com"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/dd"
    }
  },
  "found" : true
}
Relation Description

self

Self link

documentation_url

문서 링크

Post

유저가 작성한 게시물을 말한다.

GET

GET 요청을 사용해서 페이징된 게시물을 조회할 수 있다.

Request headers

Name Description

Content-Type

JSON

Request parameters

Parameter Description

page

조회할 페이지 번호

size

페이지 당 게시물 갯수

sort

정렬 방식

HTTP request

GET /v1/posts?page=0&size=2&sort=id,desc HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

_embedded.postModels.[].id

Number

게시물 Id

_embedded.postModels.[].content

String

게시물의 내용

_embedded.postModels.[].likes

Number

게시물 좋아요 수

_embedded.postModels.[].userEmail

String

게시물 작성자 이메일

_embedded.postModels.[].userNickName

String

게시물 작성자 닉네임

_embedded.postModels.[].modifyDate

String

게시물의 마지막 수정일

_embedded.postModels.[].comments

Number

게시물 댓글 수

_embedded.postModels.[].isLike

Boolean

현재 로그인한 유저의 좋아요 여부

_embedded.postModels.[].isWriter

Boolean

현재 로그인한 유저의 작성자 여부

_embedded.postModels.[]._links.self.href

String

게시물 Self link

_embedded.postModels.[]._links.comments.href

String

게시물 댓글 조회 link

_links.self.href

String

Self link

_links.documentation_url.href

String

문서 URL

_links.first.href

String

첫번째 페이지 링크

_links.next.href

String

다음 페이지 링크

_links.last.href

String

마지막 페이지 링크

page.size

Number

페이지 조회 사이즈

page.totalElements

Number

페이지 요소의 총 갯수

page.totalPages

Number

총 페이지 수

page.number

Number

현재 페이지 번호

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1681

{
  "_embedded" : {
    "postModels" : [ {
      "id" : 14,
      "content" : "test Post10",
      "likes" : 0,
      "userEmail" : "px2007@naver.com",
      "userNickName" : "피엑스맛나",
      "modifyDate" : "21/03/16 16:30",
      "comments" : 0,
      "isLike" : false,
      "isWriter" : false,
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/v1/posts/14"
        },
        "comments" : {
          "href" : "http://localhost:8080/v1/posts/14/comments"
        }
      }
    }, {
      "id" : 13,
      "content" : "test Post9",
      "likes" : 0,
      "userEmail" : "px2007@naver.com",
      "userNickName" : "피엑스맛나",
      "modifyDate" : "21/03/16 16:30",
      "comments" : 0,
      "isLike" : false,
      "isWriter" : false,
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/v1/posts/13"
        },
        "comments" : {
          "href" : "http://localhost:8080/v1/posts/13/comments"
        }
      }
    } ]
  },
  "_links" : {
    "first" : {
      "href" : "http://localhost:8080/v1/posts?page=0&size=2&sort=id,desc"
    },
    "self" : {
      "href" : "http://localhost:8080/v1/posts?page=0&size=2&sort=id,desc"
    },
    "next" : {
      "href" : "http://localhost:8080/v1/posts?page=1&size=2&sort=id,desc"
    },
    "last" : {
      "href" : "http://localhost:8080/v1/posts?page=4&size=2&sort=id,desc"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#resources-post"
    }
  },
  "page" : {
    "size" : 2,
    "totalElements" : 10,
    "totalPages" : 5,
    "number" : 0
  }
}
Relation Description

self

Self link

documentation_url

문서 URL

first

첫번째 페이지 링크

next

다음 페이지 링크

last

마지막 페이지 링크

POST

POST 요청을 사용해서 게시물을 작성할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Request fields

Path Type Description

content

String

게시물 내용

HTTP request

POST /v1/posts HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Content-Length: 35
Host: localhost:8080

{
  "content" : "Test Content1"
}

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

게시물 Id

content

String

게시물의 내용

likes

Number

게시물 좋아요 수

userEmail

String

게시물 작성자 이메일

userNickName

String

게시물 작성자 닉네임

modifyDate

String

게시물의 마지막 수정일

comments

Number

게시물 댓글 수

_links.self.href

String

Self link

_links.comments.href

String

첫번째 페이지 링크

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 481

{
  "id" : 15,
  "content" : "Test Content1",
  "likes" : 0,
  "userEmail" : "px2007@naver.com",
  "userNickName" : "피엑스맛나",
  "modifyDate" : "21/03/16 16:30",
  "comments" : 0,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/posts/15"
    },
    "comments" : {
      "href" : "http://localhost:8080/v1/posts/15/comments"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_post"
    }
  }
}

Links

Relation Description

self

Self link

comments

댓글 목록 조회 링크

documentation_url

문서 링크

Update

PUT 요청을 사용해서 작성한 게시물을 수정할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/posts/{id}
Parameter Description

id

수정할 게시물 Id

Request fields

Path Type Description

content

String

게시물 내용

HTTP request

PUT /v1/posts/25 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Content-Length: 41
Host: localhost:8080

{
  "content" : "change post content"
}

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

게시물 Id

content

String

게시물의 내용

likes

Number

게시물 좋아요 수

userEmail

String

게시물 작성자 이메일

userNickName

String

게시물 작성자 닉네임

modifyDate

String

게시물의 마지막 수정일

comments

Number

게시물 댓글 수

_links.self.href

String

Self link

_links.comments.href

String

첫번째 페이지 링크

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 491

{
  "id" : 25,
  "content" : "change post content",
  "likes" : 0,
  "userEmail" : "px2007@naver.com",
  "userNickName" : "피엑스맛나",
  "modifyDate" : "21/03/16 16:30",
  "comments" : 0,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/posts/25"
    },
    "comments" : {
      "href" : "http://localhost:8080/v1/posts/25/comments"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_update_2"
    }
  }
}
Relation Description

self

Self link

comments

댓글 목록 조회 링크

documentation_url

문서 링크

Delete

DELETE 요청을 사용해서 작성한 게시물을 삭제할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

DELETE /v1/posts/26 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Comment

유저가 작성한 댓글을 말한다.

GET

GET 요청을 사용해서 게시물의 작성된 댓글을 조회할 수 있다.

Request headers

Name Description

Content-Type

JSON

Path parameters

Table 1. /v1/posts/{id}/comments
Parameter Description

id

게시물 Id

HTTP request

GET /v1/posts/3/comments HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

_embedded.commentModels.[].id

Number

댓글 Id

_embedded.commentModels.[].postId

Number

게시물 Id

_embedded.commentModels.[].content

String

댓글의 내용

_embedded.commentModels.[].userEmail

String

댓글 작성자 이메일

_embedded.commentModels.[].userNickName

String

댓글 작성자 닉네임

_embedded.commentModels.[].modifyDate

String

댓글의 마지막 수정일

_embedded.commentModels.[].isWriter

Boolean

댓글 작성자 여부

_embedded.commentModels.[]._links.self.href

String

댓글 Self link

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 897

{
  "_embedded" : {
    "commentModels" : [ {
      "id" : 3,
      "postId" : 3,
      "content" : "test Comment1",
      "userEmail" : "px2007@naver.com",
      "userNickName" : "피엑스맛나",
      "modifyDate" : "21/03/16 16:30",
      "isWriter" : false,
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/v1/posts/3/comments/3"
        }
      }
    }, {
      "id" : 4,
      "postId" : 3,
      "content" : "test Comment2",
      "userEmail" : "px2007@naver.com",
      "userNickName" : "피엑스맛나",
      "modifyDate" : "21/03/16 16:30",
      "isWriter" : false,
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/v1/posts/3/comments/4"
        }
      }
    } ]
  },
  "_links" : {
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_get_3"
    }
  }
}
Relation Description

documentation_url

문서 링크

POST

POST 요청을 사용해서 댓글을 작성할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/posts/{id}/comments
Parameter Description

id

게시물 Id

Request fields

Path Type Description

content

String

댓글 내용

HTTP request

POST /v1/posts/1/comments HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Content-Length: 34
Host: localhost:8080

{
  "content" : "test Comment"
}

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

댓글 Id

postId

Number

게시물 Id

content

String

댓글의 내용

userEmail

String

댓글 작성자 이메일

userNickName

String

댓글 작성자 닉네임

modifyDate

String

댓글의 마지막 수정일

isWriter

Boolean

댓글 작성자 여부

_links.self.href

String

댓글 Self link

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 406

{
  "id" : 1,
  "postId" : 1,
  "content" : "test Comment",
  "userEmail" : "px2007@naver.com",
  "userNickName" : "피엑스맛나",
  "modifyDate" : "21/03/16 16:30",
  "isWriter" : true,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/posts/1/comments/1"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_post_2"
    }
  }
}

Links

Relation Description

self

Self link

documentation_url

문서 링크

Update

PUT 요청을 사용해서 작성한 게시물을 수정할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/posts/{postId}/comments/{commentId}
Parameter Description

postId

게시물 Id

commentId

댓글 Id

Request fields

Path Type Description

content

String

댓글 내용

HTTP request

PUT /v1/posts/2/comments/2 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Content-Length: 36
Host: localhost:8080

{
  "content" : "update comment"
}

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

id

Number

댓글 Id

postId

Number

게시물 Id

content

String

댓글의 내용

userEmail

String

댓글 작성자 이메일

userNickName

String

댓글 작성자 닉네임

modifyDate

String

댓글의 마지막 수정일

isWriter

Boolean

댓글 작성자 여부

_links.self.href

String

댓글 Self link

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 410

{
  "id" : 2,
  "postId" : 2,
  "content" : "update comment",
  "userEmail" : "px2007@naver.com",
  "userNickName" : "피엑스맛나",
  "modifyDate" : "21/03/16 16:30",
  "isWriter" : true,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/posts/2/comments/2"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_update_3"
    }
  }
}
Relation Description

self

Self link

documentation_url

문서 링크

Delete

DELETE 요청을 사용해서 작성한 게시물을 삭제할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

DELETE /v1/posts/4/comments/5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

PostLike

유저가 작성한 게시물의 좋아요 상태를 말한다.

GET

GET 요청을 사용해서 특정 게시물의 좋아요 여부를 반환한다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/like/{id}
Parameter Description

id

게시물 Id

HTTP request

GET /v1/like/28 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Content-Type

Content-Type

Response fields

Path Type Description

isLike

Boolean

게시물 좋아요 여부

_links.self.href

String

Self link

_links.documentation_url.href

String

문서 링크

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 220

{
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/like/28"
    },
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#_get_4"
    }
  },
  "isLike" : false
}
Relation Description

self

Self link

documentation_url

문서 링크

POST

POST 요청을 사용해서 게시물의 좋아요를 한다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/like/{id}
Parameter Description

id

게시물 Id

HTTP request

POST /v1/like/27 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Delete

DELETE 요청을 사용해서 게시물 좋아요를 취소한다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

Path parameters

Table 1. /v1/like/{id}
Parameter Description

id

게시물 Id

HTTP request

DELETE /v1/like/29 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Participant

소개팅에 참여한 유저를 말한다.

Apply

POST 요청을 사용해서 현재 회차의 소개팅에 참여할 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

POST /v1/matching/apply HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Apply-Overlap

만약 회원이 이미 소개팅에 참여하였으면, 다음과 같은 메시지를 얻는다.

Example response

HTTP/1.1 500 Internal Server Error
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 243

{
  "resultCode" : 14,
  "message" : "이미 참가하셨습니다",
  "details" : "uri=/v1/matching/apply",
  "_links" : {
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#overview-errors"
    }
  }
}

Result

GET 요청을 사용해서 마지막 소개팅 결과를 얻을 수 있다.

Request headers

Name Description

Content-Type

JSON

Authorization

Bearer Token

HTTP request

GET /v1/matching/result HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTU4ODM0MzEsInVzZXJfbmFtZSI6InB4MjAwN0BuYXZlci5jb20iLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNDYzYWU4YTktOGU4My00ZDBmLWExNWYtMmRiNDRkOGNjOGFiIiwiY2xpZW50X2lkIjoibXlBcHAiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXX0.CZLmOc-M3pPkvvANCP5rcc3t--ZoRsy8KbK9_1VPIRc
Accept: application/hal+json
Host: localhost:8080

Response headers

Name Description

Cache-Control

Cache-Control

Pragma

Pragma

Example response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 158

{
  "isMatching" : false,
  "otherKakaoId" : null,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/v1/matching/result"
    }
  }
}

Result-Exception

만약 현재 날짜가 소개팅 매칭 날짜보다 이전이라면 다음과 같은 에러 메시지를 얻는다.

Example response

HTTP/1.1 500 Internal Server Error
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 244

{
  "resultCode" : 12,
  "message" : "조회기간이 아닙니다",
  "details" : "uri=/v1/matching/result",
  "_links" : {
    "documentation_url" : {
      "href" : "http://localhost:8080/docs/index.html#overview-errors"
    }
  }
}