liner server api제작 - url 디자인

unow30·2021년 3월 16일
0

liner

목록 보기
8/8

플로우차트

라우팅 경로 설정

 route
  │
  ├ myhighlights
  │   ├ highlights.js
  │   └ pages.js
  │  
  ├ highlight
  │   ├ create.js
  │   ├ update.js
  │   └ delete.js
  │
  └ settings
      └ highlights.js
  

url 경로 설명

1. 하이라이트 저장(Create)

http://domain/highlight/create

유저 ID, pageUrl, colorHex, text 값을 필수로 받습니다
받은 정보를 기반으로 하이라이트 정보를 저장합니다.
페이지 URL을 기반으로 페이지 정보를 DB에 저장한 뒤 응답에 page의 ID 값을 넘깁니다.
출력에 저장된 하이라이트 ID를 반환합니다.
입력 예시

//입력 예시
{
  "userId": 12312,
  "pageUrl": "www.getliner.com",
  "colorHex": "#fffff8",
  "text": "라이너 사전과제 입니다."
}  

//출력 예시
{
  "highlightId": 123,  
  "userId": 12312,
  "pageId": 123,
  "colorHex": "#fffff8",
  "text": "라이너 사전과제 입니다."
}

2. 하이라이트 수정(Update)

http://domain/update/:highlightId

하이라이트 ID와 유저 ID를 필수로 받습니다
text 혹은 colorHex 둘 중에 하나는 값이 유효해야 합니다.
둘 다 받는 것도 고려합니다.
둘 중에 하나만 있는 경우도 고려합니다.
입력 받은 정보를 바탕으로 하이라이트를 저장합니다.

//입력 예시
{
  "highlightId": 123,
  "userId": 12312,
  "colorHex": "#fffff8",
  "text": "변경된 텍스트입니다"
}    

//출력 예시
{
  "highlightId": 123,  
  "userId": 12312,
  "pageId": 123,
  "colorHex": "#fffff8",
  "text": "변경된 텍스트입니다"
}

3. 페이지 내 하이라이트 정보 가져오기(Read)

http://domain/myhighlights/pages/:pageId

유저 ID 값을 필수로 받습니다
pageID 혹은 pageUrl 둘 중에 하나는 유효한 값을 갖습니다.
두 값 중 하나만 있는 경우도 고려합니다.
두 값 모두 들어오는 경우 pageId를 우선하여 사용합니다.
하이라이트의 정렬은 수정된 시간의 역순입니다.
수정된 시간이 없는 경우 생성 시간을 대신 사용합니다.

입력 예시
{
  "userId": 12312,
  "pageUrl": "www.getliner.com"
}    

출력 예시
[
  {
    "highlightId": 123,  
    "userId": 12312,
    "pageId": 123,
    "colorHex": "#fffff8",
    "text": "라이너 사전과제 입니다."
  }
  ...
]

4. 유저가 하이라이트한 정보와 페이지 가져오기(Read)

http://domain/myhighlights/highlights

유저 ID를 필수로 받습니다
페이지의 정렬은 마지막 하이라이트가 마지막으로 저장된 시간의 역순으로 합니다.
하이라이트 정렬은 3번과 같습니다.

//입력 예시
{
  "userId": 12312,
}    

//출력 예시
[
  {
     "pageId": 123,
     "pageUrl": "www.getliner.com"
     "highlights": [
       {
         "highlightId": 123,  
         "userId": 12312,
         "pageId": 123,
         "colorHex": "#fffff8",
         "text": "라이너 사전과제 입니다."
       },
       ...
     ]
  },
  ...
]

5. 하이라이트 삭제(Delete)

http://domain/highlight/delete/:highlightId

하이라이트 ID, 유저 ID를 필수로 받습니다
삭제된 하이라이트는 모든 조회 관련 API에서 제외되어 반환됩니다.

//입력 예시
{
  "userId": 12312,
  "highlightId": 12312,
} 

//출력 예시
200 OK

6. 유저의 하이라이트 테마 변경(Update)

http://domain/settings/highlights

유저 ID를 필수로 받습니다
테마 1, 2, 3 중에 하나로 테마를 변경합니다.
테마가 변경된 이후에는 하이라이트 정보 요청의 응답이 모두 변경된 테마의 색으로 바뀌어야 합니다.

//입력 예시
{
  "userId": 12312,
  "themeId": 2,
}   
  
//출력 예시
200 OK

0개의 댓글