회원

가입

Request

POST /members HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 96

{
  "email" : "OTHER_login@email.com",
  "password" : "OTHER_password",
  "age" : 20
}

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /members/2
Date: Wed, 19 May 2021 00:31:16 GMT
Keep-Alive: timeout=60
Connection: keep-alive

로그인

Request

POST /login/token HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 72

{
  "email" : "OTHER_login@email.com",
  "password" : "OTHER_password"
}

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:16 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 383

{
  "accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJpZFwiOjIsXCJlbWFpbFwiOlwiT1RIRVJfbG9naW5AZW1haWwuY29tXCIsXCJwYXNzd29yZFwiOlwiT1RIRVJfcGFzc3dvcmRcIixcIm5hbWVcIjpcIuyCrOyaqeyekFwiLFwicHJpbmNpcGFsXCI6XCJPVEhFUl9sb2dpbkBlbWFpbC5jb21cIixcImNyZWRlbnRpYWxzXCI6XCJPVEhFUl9wYXNzd29yZFwifSIsImlhdCI6MTYyMTM4NDI3NywiZXhwIjoxNjIxMzg3ODc3fQ.x29yyswfyjN5kS0jto-9k5_ZikzSIjNte3alLx1wksM"
}

내 정보 조회

Request

GET /members/me HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJpZFwiOjEsXCJlbWFpbFwiOlwiZW1haWxAZW1haWwuY29tXCIsXCJwYXNzd29yZFwiOlwicGFzc3dvcmRcIixcIm5hbWVcIjpcIuyCrOyaqeyekFwiLFwicHJpbmNpcGFsXCI6XCJlbWFpbEBlbWFpbC5jb21cIixcImNyZWRlbnRpYWxzXCI6XCJwYXNzd29yZFwifSIsImlhdCI6MTYyMTM4NDI3NywiZXhwIjoxNjIxMzg3ODc3fQ.x8eWRLUIxCbqwrnokvYMB1VTbFkG3tDSMbkiul4ryMg
Accept: application/json
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:16 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 69

{
  "id" : 1,
  "email" : "email@email.com",
  "age" : 20
}

지하철역

생성

Request

POST /stations HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 29

{
  "name" : "지하철역"
}

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /stations/1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 138

{
  "id" : 1,
  "name" : "지하철역"
}

목록 조회

Request

GET /stations HTTP/1.1
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 142

[ {
  "id" : 1,
  "name" : "지하철역"
} ]

삭제

Request

DELETE /stations/1 HTTP/1.1
Host: localhost:58561

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive

지하철 노선

생성

Request

POST /lines HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 137

{
  "name" : "신분당선",
  "color" : "bg-red-600",
  "upStationId" : 1,
  "downStationId" : 2,
  "distance" : 10,
}

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /lines/1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 896

{
  "id" : 1,
  "name" : "신분당선",
  "color" : "bg-red-600",
  "stations" : [ {
    "id" : 1,
    "name" : "강남역"
  }, {
    "id" : 2,
    "name" : "광교역"
  } ],
  "sections" : [ {
    "upStation" : {
      "id" : 1,
      "name" : "강남역"
    },
    "downStation" : {
      "id" : 2,
      "name" : "광교역"
    },
    "distance" : 10
  } ]
}

목록 조회

Request

GET /lines HTTP/1.1
Accept: application/json
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 900

[ {
  "id" : 1,
  "name" : "신분당선",
  "color" : "bg-red-600",
  "stations" : [ {
    "id" : 1,
    "name" : "강남역"
  }, {
    "id" : 2,
    "name" : "광교역"
  } ],
  "sections" : [ {
    "upStation" : {
      "id" : 1,
      "name" : "강남역"
    },
    "downStation" : {
      "id" : 2,
      "name" : "광교역"
    },
    "distance" : 10
  } ]
} ]

조회

Request

GET /lines/1 HTTP/1.1
Accept: application/json
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 896

{
  "id" : 1,
  "name" : "신분당선",
  "color" : "bg-red-600",
  "stations" : [ {
    "id" : 1,
    "name" : "강남역"
  }, {
    "id" : 2,
    "name" : "광교역"
  } ],
  "sections" : [ {
    "upStation" : {
      "id" : 1,
      "name" : "강남역"
    },
    "downStation" : {
      "id" : 2,
      "name" : "광교역"
    },
    "distance" : 10
  } ]
}

수정

Request

PUT /lines/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJpZFwiOjEsXCJlbWFpbFwiOlwiZW1haWxAZW1haWwuY29tXCIsXCJwYXNzd29yZFwiOlwicGFzc3dvcmRcIixcIm5hbWVcIjpcIuyCrOyaqeyekFwiLFwicHJpbmNpcGFsXCI6XCJlbWFpbEBlbWFpbC5jb21cIixcImNyZWRlbnRpYWxzXCI6XCJwYXNzd29yZFwifSIsImlhdCI6MTYyMTM4NDI3OCwiZXhwIjoxNjIxMzg3ODc4fQ.rQnqxpQaniiL7wtfc2R5GKYTW3QHyfWVqxqdmhzMsVQ
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 55

{
  "name" : "구분당선",
  "color" : "bg-old-600"
}

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive

삭제

Request

DELETE /lines/1 HTTP/1.1
Host: localhost:58561

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive

지하철 구간

구간 생성

Request

POST /lines/1/sections HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: localhost:58561
Content-Length: 83

{
  "upStationId" : 2,
  "downStationId" : 3,
  "distance" : 6
}

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Wed, 19 May 2021 00:31:16 GMT
Keep-Alive: timeout=60
Connection: keep-alive

구간 제거

Request

DELETE /lines/1/sections?stationId=2 HTTP/1.1
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Wed, 19 May 2021 00:31:16 GMT
Keep-Alive: timeout=60
Connection: keep-alive

지하철 경로

경로 조회

Request

GET /paths?source=1&target=3&type=DISTANCE HTTP/1.1
Accept: application/json
Host: localhost:58561

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 19 May 2021 00:31:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 508

{
  "stations" : [ {
    "id" : 1,
    "name" : "교대역"
  }, {
    "id" : 4,
    "name" : "남부터미널역"
  }, {
    "id" : 3,
    "name" : "양재역"
  } ],
  "distance" : 5
}