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 로 제한됩니다.
5. QNA, 게시판상담 시 파일첨부url 링크 또는 file-path 로 전달을 위해서는 content_addinfo에 정보를 추가하여 정보를 추가하여 첨부 파일 전달기능을 대체할 수 있으며 이때 첨부파일의 종류와 상관없이 최대 사이즈 4096만큼 전달 가능
- 단, 파일 서버가 있다면 가능 한 기능
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(4096) 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 요청 예시(첨부파일을 Row데이터로 전달 시 사용하는 형식)
- 파일 전송 시 하위 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. QNA, 게시판상담 시 파일첨부를 URL 링크 또는 file-path 로 연결 시
QNA,게시판 상담 시 파일첨부url 링크 또는 file-path 로 연결 시 하기와 같은 포맷으로 설정
content_addinfo항목의 value 최대 길이는 4096까지 가능하며 첨부파일의 종류 및 개수에 제약은 없슴
필수항목
content_addinfo의 value는 json-arrary 방식으로 작성 후 양 끝단을 ""로 설정하여 문자열 설정 후 전달
"content_addinfo":"[{fineNm(n):"filename",file(n):"file_path OR file-link URL}]"
[content_addinfo의 value 설정 샘플]
"content_addinfo":"[{"fileNm1":"0823_Centerflow_Leaflet.pdf","file1":"https://722e6.kakaoiedge.com/dev/help/0823_Centerflow_Leaflet_20240826_141331.pdf"},{"fileNm2":"0823_Centerflow_Leafflet.pdf","file2":"https://622e6.kakaoiedge.com/dev/help/0823_Centerflow_Leaflet_20240826_141331.pdf"},{"fileNm3":"0823_Centerflow_Leaflet_348_230_out.pdf","file3":"https://7996351a622e6.kakaoiedge.com/dev/help/0823_Centerflow_Leaflet_348_230_out_20240826_141331.pdf"}]"
7. 요청에 대한 결과 설명
response메시지 body에 요청에 대한 결과값을 json 형식으로 body에 전송합니다.- 해당 Body의 내용으로 결과값을 판단합니다.
응답이 올때까지 수신 대기합니다.
8. 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 | 필수 입력 파라메터 값이 없을 경우 |