연락처서비스 v2.0

(node.js + Express + sqlite3)

  • 간단한 RESTful Service 예제입니다. 내용은 사이드 메뉴를 열어서 확인하세요.
  • 사진 정보를 변경할 수 있도록 업로드 기능을 추가하였습니다.
  • 자세한 사용 방법은 오른쪽 사이드 메뉴의 [API Console] 을 참조하세요.
  • JSONP 지원(O)

: 연락처 목록 조회 기능. 페이지 번호가 0인 경우 전체 데이터 조회

- 전달 파라미터
  • pageno : 페이지 번호(기본값:0)
  • pagesize : 페이지 사이즈(기본값:5)
- 요청 형식
- 응답데이터 형식
{
    "pageno":1,
    "pagesize":2,
    "totalcount":100,
    "contacts":[
        {"no":100,"name":"Jordyn","tel":"010-3456-8299","address":"서울시","photo":"http://sample.bmaster.kro.kr/photos/100.jpg"},
        {"no":99,"name":"Cassidy","tel":"010-3456-8298","address":"서울시","photo":"http://sample.bmaster.kro.kr/photos/99.jpg"}
    ]
}

: 특정 연락처 한건 조회

- 전달 파라미터
  • :no : 연락처 고유 번호(Key)
- 요청 형식
- 응답데이터 형식

{
    "no":100,
    "name":"Cassidy",
    "tel":"010-3456-8299",
    "address":"서울시",
    "photo":"http://sample.bmaster.kro.kr/photos/100.jpg"
}

: 이름을 이용해 연락처 검색

- 전달 파라미터
  • :name : 이름의 일부 문자열(2글자 이상만 허용함)
- 요청 형식
- 응답데이터 형식
[
   {"no":49,"name":"Jordan Kelly","tel":"010-3456-8248","address":"서울시","photo":"http://localhost/photos/49.jpg"},
   {"no":95,"name":"Jocelyn Smith","tel":"010-3456-8294","address":"서울시","photo":"http://localhost/photos/95.jpg"},
   {"no":100,"name":"Jordyn Baker","tel":"010-3456-8299","address":"서울시","photo":"http://localhost/photos/100.jpg"}
]

: 새로운 연락처 추가(초기사진은 noimage.jpg로 설정함)

: 사진을 수정하려면 POST /contacts/:no/photo API를 호출해야 함.

- 전달 파라미터
  • name : 이름
  • tel : 전화번호
  • address : 주소
- 요청 형식(conent-type:application/json 인 경우)
{
    "name":"강감찬",
    "tel":"010-2222-3339",
    "address":"서울시"
}
- 요청 형식(conent-type:application/x-www-form-urlencoded 인 경우)
name=....&tel=....&address=....
- 응답데이터 형식(성공)
{
   "status": "success",
   "message": "No(1491372229443) 데이터 추가 성공!!",
   "no": 1491372229443
}
- 응답데이터 형식(실패)
{
   "status": "fail",
   "message": "[에러메시지]"
}

: 기존 연락처 정보 변경

- 전달 파라미터
  • :no : 연락처 고유 번호(Key)
  • name : 이름
  • tel : 전화번호
  • address : 주소
- 요청 형식(conent-type:application/json 인 경우)
{
    "no" : 1491350298389,
    "name":"강감찬",
    "tel":"010-2222-3339",
    "address":"서울시"
}
- 요청 형식(conent-type:application/x-www-form-urlencoded 인 경우)
no=...&name=....&tel=....&address=....
- 응답데이터 형식(성공)
{
   "status": "success",
   "message": "No(1491372229443) 데이터 변경 성공!!",
   "no": 1491372229443
}
- 응답데이터 형식(실패)
{
   "status": "fail",
   "message": "[에러메시지]"
}

: 기존 연락처 삭제

- 전달 파라미터
  • :no : 연락처 고유 번호(Key)
- 요청 형식
  • /contacts/1491350298389
- 응답데이터 형식(성공)
{
   "status": "success",
   "message": "No(1491372229443) 데이터 삭제 성공!!",
   "no" : 1491372229443
}
- 응답데이터 형식(실패)
{
   "status": "fail",
   "message": "[에러메시지]"
}

: 여러 건의 연락처를 한번에 추가함

- 전달 파라미터
- 요청 형식(conent-type:application/json 만 지원)
[ 
   { "name":"오바마", "tel":"010-2222-3339", "address":"서울시" }, 
   { "name":"샌더스", "tel":"010-2222-3332", "address":"서울시" },
   { "name":"트럼프", "tel":"010-2222-3333", "address":"서울시" }
]
- 응답데이터 형식(성공)
{
  "status": "success",
  "message": "3건 데이터 추가 성공!!",
  "no": [
    1491588016908,
    1491588016909,
    1491588016910
  ]
}
- 응답데이터 형식(실패)
{
   "status": "fail",
   "message": "[에러메시지]"
}

: 연락처 정보의 사진을 업로드하고 변경함

- 전달 파라미터
  • photo 파일 필드 : multipart/form-data
- 요청 형식 폼(conent-type:multipart/form-data 만 지원)
<form method="post" enctype="multipart/form-data" action="/contacts/{no}/photo"> 
    <input type="file" name="photo"> 
    <input type="submit"> 
</form> 
- 응답데이터 형식(성공)
{
  "status": "success",
  "message": "No(1491586656774) 사진 변경 성공!!",
  "no": "1491586656774"
}
- 응답데이터 형식(실패)
{
  "status": "fail",
  "message": "no에 해당하는 연락처 정보 없음"
}

: 1초의 지연시간 후 연락처 목록 응답. 페이지 번호가 0인 경우 전체 데이터 조회

- 전달 파라미터
  • pageno : 페이지 번호(기본값:0)
  • pagesize : 페이지 사이즈(기본값:5)
- 요청 형식
- 응답데이터 형식
{
    "pageno":1,
    "pagesize":2,
    "totalcount":100,
    "contacts":[
        {"no":100,"name":"Jordyn","tel":"010-3456-8299","address":"서울시","photo":"http://sample.bmaster.kro.kr/photos/100.jpg"},
        {"no":99,"name":"Cassidy","tel":"010-3456-8298","address":"서울시","photo":"http://sample.bmaster.kro.kr/photos/99.jpg"}
    ]
}

: 이름을 이용해 연락처 검색(1초의 지연시간 발생)

- 전달 파라미터
  • :name : 이름의 일부 문자열(2글자 이상만 허용함)
- 요청 형식
- 응답데이터 형식
[
   {"no":49,"name":"Jordan Kelly","tel":"010-3456-8248","address":"서울시","photo":"http://localhost/photos/49.jpg"},
   {"no":95,"name":"Jocelyn Smith","tel":"010-3456-8294","address":"서울시","photo":"http://localhost/photos/95.jpg"},
   {"no":100,"name":"Jordyn Baker","tel":"010-3456-8299","address":"서울시","photo":"http://localhost/photos/100.jpg"}
]