1.1소개
- http/https 프로토콜을 사용하며 POST method를 사용하여 QNA, 게시판 요청을Json형식으로 전송하고, 그 결과를 Json형식의 결과 데이터로 응답합니다.
- 서버 to 서버 연결로 클라이언트 서버의 IP를 화이트리스트로 관리합니다.- 클라이언트 서버에서 문의 요청 수신 시 마다 바로 API를 호출하여 전송합니다.
1.2API 개요
1. 요청 전송 해더는 multipart/form-data 형식입니다.
header는 Content-Type: multipart/form-data; 로 설정합니다.
모든 요청의 characterSet은 UTF-8입니다.
2. Multipar/form-data의 파일 전송 순서 (mandatory)- Json 형식의 요청 파라메터- 각 첨부 파일 개수만큼 raw데이터 전송
3. 첨부 파일은 최대 3개까지 가능하며 각 파일의 용량은 2M bytes(2,097,152)로 제한됩니다.
4. 첨부 파일의 종류는 jpg, jpeg, png, gif, pdf 로 제한됩니다.
1.3메시지 전송 요청
- 1. Host
HOST : 넥서스QNA 서버의 host명 / PORT : 8450
2. Request URI
게시판 상담 요청 : POST /request/board
QNA(1대1문의) 요청 : POST /request/qna
Email요청 : POST /request/email
3 . 요청 파라메터
키 | 타입 | 필수 | 설명 |
---|---|---|---|
msg_id | text(1024) | Y | 요청자의 고유 ID (요청에 대한 응답 메시지 키 값으로 사용 ) |
tenant_alias | text(10) | Y | 고객사 구분자 사전에 기 등록된 테넌트의 Alias 설정 필수 설정값은 넥서스 문의 |
name | text(255) | N | 요청한 고객명 |
phone | text(255) | N | 고객 연락처 |
text(255) | N/Y | URI : qna, email 상담일 경우 고객 이메일 필수 설정 | |
inquiry_major_name | text(64) | Y | 상담 유형 대분류 반드시 설정값은 넥서스 문의 |
inquiry_middle_name | text(64) | N | 상담 유형 중분류 기 설정되어 있을 경우 반드시 입력하며 설정값은 넥서스 문의 |
inquiry_minor_name | text(64) | N | 상담 유형 소분류 기 설정되어 있을 경우 반드시 입력하며 설정값은 넥서스 문의 |
subject | text(255) | N | 상담내용 제목 |
content | text | Y | 상담 내용 |
content_type | text(64) | Y | 상담내용 text 형식 ( default: plain, html, calendar 등) |
content_addinfo | text(1024) Json Array | N | 고객 부가정보 Json 해당 컬럼 미사용시 해당 파라메터는 미 입력 [{"등록번호":"174923","사업자번호":"220404A15605"}] |
agreement_flag | text(255) Json Array | Y | 약관 동의 flag : 고객이 응답 받을 수단의 동의 항목 [{“email”:”1”, “sms”,”1”, “call”:”1”,"alarmtalk":"1"}] |
request_time | text(14) | N | 미 설정 시 서버에 접수된 시간을 자동 설정 클라이언트 시간 기준으로 요청 한 시간 포맷: yyyymmddhh24miss20231201152030 |
references | text (Json array) | N | 이메일 상담 시 이에일의 header에서 발췌하여 설정 ["01901da2658$dec2bd0$@nexus.co.kr", "01901d263f0$9c472bd0$@nexus.co.kr"] |
file_tot_count | int | N | 이메일 상담 시 첨부된 파일의 갯수 “file_tot_count”:3 |
file_excluded_list | text | N | 이메일 상담 시 첨부파일의 개수가 3초과 시 초과된 파일명 기입 file4.jpg, file5.jpg, file6.jpg, file7.jpg |
to_email | text(255) | N | 수신 된 이메일의 to에 설정된 고객사의 대표 이에일 “to_email”:”help@nexus.co.kr” |
dnis | text(64) | N | 인입경로 구분용 “dnis”:”닷컴” |
4. 전송 파라메터 Json 형식 (공백,개행 제거 후 전달해야 됩니다)
하기 항목 5. MultiPart form-data 요청 예시 참조
5. MultiPart form-data 요청 예시
- 파일 전송 시 하위 header의 Content-Disposition: form-data의 “filename=” 항목에 각 첨부 파일의
파일명이 반드시 들어가야 됩니다.
- boundary 값은 모두 동일한 값을 사용합니다.
[샘플]
POST /request/board HTTP/1.1 Host: agent1.nexuscommunity.net Cache-Control: no-cach Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfmPGexsk7QQdDqBV Content-Length: 1024000 ------WebKitFormBoundaryfmPGexsk7QQdDqBV Content-Disposition: form-data; name="contents" Content-Type: application/json;charset=UTF-8 {"msg_id":"1234567890","tenant_alias":"nexus","name":"nexus","phone":"010-0000-0000","email":"alice@test.com","inquiry_major_name":"카테고리대","inquiry_middle_name":"카테고리중","inquiry_minor_name":"카테고리소","subject":"제목","content_type":"text","content":"contentcontentcontentcontentcontent","content_addinfo":[{"등록번호":"174923","사업자번호":"220404A15605"}],"agreement_flag":[{"email":1,"sms":1,"call":1}],"request_time":"20231201152030"} ------WebKitFormBoundaryfmPGexsk7QQdDqBV Content-Disposition: form-data; name="attach1", filename="image1.jpg" Content-Type: image/jpg 12ca123cfab234567687990345adcdef21256897bcd234ea ------WebKitFormBoundaryfmPGexsk7QQdDqBV Content-Disposition: form-data; name="attach2", filename="image2.png" Content-Type: image/png 12ca123cfab234567687990345adcdef21256897bcd234ea ------WebKitFormBoundaryfmPGexsk7QQdDqBV Content-Disposition: form-data; name="attach3", filename="info.pdf" Content-Type: application/pdf 12ca123cfab234567687990345adcdef21256897bcd234ea ------WebKitFormBoundaryfmPGexsk7QQdDqBV--
6. 요청에 대한 결과 설명
response메시지 body에 요청에 대한 결과값을 json 형식으로 body에 전송합니다.- 해당 Body의 내용으로 결과값을 판단합니다.
응답이 올때까지 수신 대기합니다.
7. Response 코드
code | message | 설명 |
---|---|---|
200 | OK | 정상 접수 |
1400 | Bad Request | POST 이 외 Method 요청 시 |
1404 | Not Found | 미정의 된 URI 설정 시 |
1405 | Method Not Allowed | POST 이외 메소드 설정 시 |
1408 | Request Timeout | 응답시간 초과 시 서버에서 처리 지연 등 |
1415 | Unsupported Media Type | 파일 확장자 jpg, jpeg, gif, png, pdf 이 외 파일 첨부 시 |
1500 | Internal Server Error | 서버 내부 처리 오류 |
1501 | Attach File Size Overflow | 첨부 파일 사이즈 2MBtypes 초과 시 |
1502 | Not Found Attach File | 첨부 파일의 Row데이터가 없을 경우 |
1503 | Json Syntax Fail | 요청 파라메터 json 구문 에러 |
1504 | Cannot Be Null | 필수 입력 파라메터 값이 없을 경우 |