A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Last Update | 2017.02.04 12:47 | Note: Body는 모두 JSON | Required: R | ||||||||||||||||||||||
2 | Endpoint: http://52.175.149.237 | Not Required: N | ||||||||||||||||||||||||
3 | HTTP 1.1 | |||||||||||||||||||||||||
4 | ||||||||||||||||||||||||||
5 | Section | Purpose | Endpoint | Method | Request Query | Request Header | Request Body Example | Optionality | Req. Field Desc. | Response Code | Response Body | Response Desc. | Error Example | Remark | ||||||||||||
6 | 회원 | 회원가입 | /auth/signup | POST | { "username": "yoohogun114@naver.com", "password": "ghrbsdl114", "account": 74891084403906, "bank": 신한은행 } | { "username": R "password": R "account": R "bank": R } | { "username": 이메일 주소 "password": 유져 패스워드 "account": 계좌번호 "bank": 은행 이름 } | 200 | { "res": "" } | { "res": 성공여부 } | code: 500 { "res": { "code": ... "index": ..., "errmsg": ... ", "op": { .... } } } | |||||||||||||||
7 | 로그인 (local login 전용입니다. Naver 로그인이나 회원가입은 아래 네이버 Auth 이용) | /auth/login | POST | { "username": "yoohogun114@naver.com", "password": "ghrbsdl114" } | { "username": R "password": R } | { "username": 이메일 주소 "password": 유져 패스워드 } | 200 | { "res": { "_id": "5895c5430b4e3fc553bcf439", "username": "yoohogun113@naver.com", "bank": "하나은행", "account": 1041975132, "__v": 0 } } | { "res": 성공여부 } | code: 500 { "res": "fail login" } | 로그인 성공하면 Session Cookie 전달함. 안드로이드에서 저장해주세요 | |||||||||||||||
8 | Naver Auth (회원가입) | /auth/naver | POST | { "username": "yoohogun114@naver.com", "password": "ghrbsdl114", "accessToken": "dsf23rdfdsf" "refreshToken": "dsf23dfsdsf" "tokenType": "bearer" } | ||||||||||||||||||||||
9 | 이메일 | 이메일 전송 | POST | { "email": "yoohoogun114@naver.com" } | { "email": R } | { "email": 이메일 주소 } | 200 | { "res": "success" } | { "res": 성공여부 } | code: 500 { "res": "need to login" } | Session Cookie가 없으면 인증 X | |||||||||||||||
10 | 채팅 | 채팅 전송 | /chat/add | { "userId": "yoohoogun114@naver.com", "chatText" : "성민이한테 3만원 송금해줘" } | { "userId": 유저 식별값, "chatText" : 대화 내용 } | 200 | { "res":"success", "data":{ "action":"send", "resolvedQuery":"성민이한테 3만원 송금해줘", "speech":"{name} 에게 {money}원을 송금하시겠습니까?", "parameters":{ "money":"3000", "name":"성민이" } } } | { "res":"success", "data":{ "action": 분류된 문장 내용, 송금인지 내용저장인지 알림요청인지 등등, "resolvedQuery":원래문장, "speech":답변해야 할 텍스트, "parameters":{ // 파싱된 문장 요소들 ex) 금액, 보내야할 사람 이름 등 "money":"3000", "name":"성민이" } } } | code: 500 | |||||||||||||||||
11 | 기존 채팅 목록 불러오기 | /chat/read | POST | { "userId": "yoohoogun114@naver.com" } | { "userId": 유저 식별값 } | 200 | { "res": "success", "data": { "_id": "5895dbb30059d5a789703c23", "accountId": "04nR9a5zJdaLAfDiaSBfBZ3JtUsVOIdXwmECyGdgVDUqOP5HoSX6O7KRQCdNArgv", "userId": "정성민", "__v": 0, "records": [ { "_id": "5895dbbd0059d5a789703c24", "timestamp": 1486216125, "amount": 10000, "toId": "정성민", "fromId": "정성민", "recordId": "pBPNjNhxcdXdtlaJUTY5eXcC1fjPIGzMO0aQB3FchnBGE0RIx6HH3lP7Kdgd8ryP" }, { "_id": "5895dbbd0059d5a789703c25", "timestamp": 1486216125, "amount": 10000, "toId": "정성민", "fromId": "정성민", "recordId": "ZpYVtV2yhipE4mDgMAlfkKx1AOWCQANQwkq5C6Z7gxPL9adaQzR27AMnhtEp7j2L" }, { "_id": "5895dbc60059d5a789703c26", "timestamp": 1486216134, "amount": 10000, "toId": "최평강", "fromId": "정성민", "recordId": "aHyeo7Jijm5zPATPBlbAzRaFjb4aNkEJ1Madq5ZTQHU5hvHsTNTlIstsOkbqB3Je" } ], "money": 10000 } } | { "res": "success", "data": { "_id": 무시하셔도 됩니다. "accountId": 계좌 고유 번호, "userId": 유저이름==계좌번호, "__v": 0, "records": [ // 계좌 이체 기록들 { "_id": 무시하셔도 됩니다., "timestamp": 이체했던 시간, "amount": 이체 금액, "toId": 전송한사람, "fromId": 출금한사람, //전송한사람과 출금한사람이 같을경우 '입금', 다를경우 '출금' "recordId": 이체 고유 id }, ], "money": 총 잔고 } } | code: 500 | |||||||||||||||||
12 | 핀테크 API | 계좌 조회 | /bank/read | GET | ?userId=620-229307-041 | ?userId=계좌번호 | 200 | { "res": "success", "data": { "_id": "5895dbb30059d5a789703c23", "accountId": "04nR9a5zJdaLAfDiaSBfBZ3JtUsVOIdXwmECyGdgVDUqOP5HoSX6O7KRQCdNArgv", "userId": "정성민", "__v": 0, "records": [ { "_id": "5895dbbd0059d5a789703c24", "timestamp": 1486216125, "amount": 10000, "toId": "정성민", "fromId": "정성민", "recordId": "pBPNjNhxcdXdtlaJUTY5eXcC1fjPIGzMO0aQB3FchnBGE0RIx6HH3lP7Kdgd8ryP" }, { "_id": "5895dbbd0059d5a789703c25", "timestamp": 1486216125, "amount": 10000, "toId": "정성민", "fromId": "정성민", "recordId": "ZpYVtV2yhipE4mDgMAlfkKx1AOWCQANQwkq5C6Z7gxPL9adaQzR27AMnhtEp7j2L" }, { "_id": "5895dbc60059d5a789703c26", "timestamp": 1486216134, "amount": 10000, "toId": "최평강", "fromId": "정성민", "recordId": "aHyeo7Jijm5zPATPBlbAzRaFjb4aNkEJ1Madq5ZTQHU5hvHsTNTlIstsOkbqB3Je" } ], "money": 10000 } } | { "res":"success", "data":{ "action": 분류된 문장 내용, 송금인지 내용저장인지 알림요청인지 등등, "resolvedQuery":원래문장, "speech":답변해야 할 텍스트, "parameters":{ // 파싱된 문장 요소들 ex) 금액, 보내야할 사람 이름 등 "money":"3000", "name":"성민이" } } } | code: 500 | ||||||||||||||||
13 | 입금 | /bank/deposit | POST | { "userId": "620-229307-041", "amount" : 10000, "name": "저축", "date": "2017-02-03T21:00:53.110Z" } | { "userId": 유저 식별값(계좌번호), "amount" : 입금할 금액 "name": 사용 용도, "date": 날짜 } | 200 | { "res":"success" "totalAmount": "10000" } | { "res":걍 무조건 성공임 ㅎㅎ } | code: 500 | |||||||||||||||||
14 | 출금 | /bank/withdraw | POST | { "userId": "620-229307-041", "toId": "223-25334-213", "amount": " 10000", "name": "신한카드", "date": "2017-02-03T21:00:53.110Z" } | { "userId": 유저식별값(계좌번호) "toId": 송금받을 계좌번호, "amount": 송금금액, "name": 사용 용도, "date": 날짜 } | 200 | { "res":"success", "data":{ "recoredSendId":"aHyeo7Jijm5zPATPBlbAzRaFjb4aNkEJ1Madq5ZTQHU5hvHsTNTlIstsOkbqB3Je", "recordRecvId":"LxxpE5VkfWUeS9Z8vWb93owMDX4DisbMC1HYql2krrDRpzKJGLHk1ippELkzXus5" } } | code: 500 | ||||||||||||||||||
15 | ||||||||||||||||||||||||||
16 | # API.AI | |||||||||||||||||||||||||
17 | ## 1. 인사하기 (Done) | |||||||||||||||||||||||||
18 | - 안녕하세요 | |||||||||||||||||||||||||
19 | - 안녕 | |||||||||||||||||||||||||
20 | ||||||||||||||||||||||||||
21 | ## 2. 계좌번호 입력 => 서버 저장 and Logic (Done) | |||||||||||||||||||||||||
22 | - 호균이의 계좌번호는 352135343 이야 | |||||||||||||||||||||||||
23 | - 민규 계좌는 10101010이야. | |||||||||||||||||||||||||
24 | - 정진희 계좌번호는 74891084403907 | |||||||||||||||||||||||||
25 | 전화번호부, 이름추출 -> 계좌 매칭해서 | |||||||||||||||||||||||||
26 | ||||||||||||||||||||||||||
27 | ## 3. 송금 (Done) | |||||||||||||||||||||||||
28 | - 성민이한테 3만원 송금해줘 | |||||||||||||||||||||||||
29 | - 매주 목요일에 공과금 납부 100000원 알림 등록해줘 | |||||||||||||||||||||||||
30 | - 호균이한테 1000원 보내 | |||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ## 4. 이번달, 저번달 공과금 계산 (Not Yet, 처리는 했으나 로직 미구현) | |||||||||||||||||||||||||
33 | - 저번 달 가스비 얼마 나왔지 | |||||||||||||||||||||||||
34 | - 저번 달 카드 얼마 나왔지 | |||||||||||||||||||||||||
35 | - 저번 달 전기세 얼마 나왔지 | |||||||||||||||||||||||||
36 | - 저번 달 수도세 얼마 나왔지 | |||||||||||||||||||||||||
37 | - 저번 달 카드비 얼마나 나왔지 | |||||||||||||||||||||||||
38 | 계좌 정보중, 이번달 공과금을 계산해줌 ~~(계산로직 미구현)~~ | |||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ## 5 알림 (Done) | |||||||||||||||||||||||||
41 | - 매주 목요일에 공과금 납부 100000원 알림 등록해줘. | |||||||||||||||||||||||||
42 | - 매달 25일에 한국전기전력공사에게 전기요금 111,111원 알림 등록해줘.. | |||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ## 6. 다음달 돈 받아줘 ~~ (Not Yet) | |||||||||||||||||||||||||
45 | - 예약 메일링. | |||||||||||||||||||||||||
46 | - 메일링만 구현, 예약 메일 및 일수 메시지 내용은 아직… | |||||||||||||||||||||||||
47 | - ~~현재 메일 기능은 지원하지만, Server API Endpoint를 처리하지 않음~~ | |||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | 보안에 대한 피드백이 오면=> 원래 해커톤에서 구현단 보안은 크게 신경쓰지 않지만 서버사이드에서 최소한의 암호화는 했고 자체 핀테크 API구현, | |||||||||||||||||||||||||
50 | 패턴인식 알고리즘 API를 쓰고, 전처리 후처리만한 어려운 기능이 아니다. | |||||||||||||||||||||||||
51 | 어절, 구절단위는 무척 쉬운 NLP(Natural Language Processing)이다. | |||||||||||||||||||||||||
52 | 퍼포먼스, 정확도가 그리 뛰어난 편도 아니다. 기능, 성능을 보는게 아니라 핀테크의 활용용도에 봐주셨으면 좋겟다. 구 단위 분석 | |||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | - 일수라는 + 컨셉 | |||||||||||||||||||||||||
55 | - 라이프스타일 (카드세, 전기세, 수도세등 공과금 납부 및 금융 알람 => 생활밀착형 핀테크) | |||||||||||||||||||||||||
56 | ㄹ- 돈이 말을하는 컨셉 | |||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |