[API 도메인]
리전 | 도메인 |
---|---|
한국(판교) | https://kr1-aifashion.api.nhncloudservice.com |
한국(평촌) | https://kr2-aifashion.api.nhncloudservice.com |
한국(광주) | https://kr3-aifashion.api.nhncloudservice.com |
일본(도쿄) | https://jp1-aifashion.api.nhncloudservice.com |
미국(캘리포니아) | https://us1-api-aifashion.nhncloudservice.com |
[응답 본문 헤더]
이름 | 타입 | 설명 |
---|---|---|
header.isSuccessful | boolean | true: 정상 false: 오류 |
header.resultCode | int | 0: 정상 0보다 큼: 부분 성공 음수: 오류 |
header.resultMessage | string | "SUCCESS": 정상 그 외: 오류 메시지 리턴 |
[성공 응답 본문 예]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[실패 응답 본문 예]
{
"header": {
"isSuccessful": false,
"resultCode": -40000,
"resultMessage": "InvalidParam"
}
}
이름 | field | value type | 필수 | max length | 비고 |
---|---|---|---|---|---|
상품ID | product_id | string | O | 72 | unique key |
상태 | status | string | O | 7 | enable: 추가 또는 업데이트 disable: 삭제 |
상품이름 | name | string | O | 256 | 상품명 |
카테고리 1depth | category1_id | string | O | 72 | 카테고리 1depth 아이디 |
카테고리 2depth | category2_id | string | O | 72 | 카테고리 2depth 아이디 |
카테고리 3depth | category3_id | string | O | 72 | 카테고리 3depth 아이디 |
이미지url | image_url | string | O | 1000 | 접근 가능한 이미지 URL |
필터1 | s1 | string | O | 72 | 제한 검색을 위한 필터1 |
필터2 | s2 | string | O | 72 | 제한 검색을 위한 필터2 |
{"product_id": "10001", "status": "enable", "name": "AAA red onepiece", "category_id1": "1", "category_id2": "1", "category_id3": "2", "image_url": "http://aaaaaaa.bbbbb.jpg", "s1": "1", "s2": "2"}
{"product_id": "10002", "status": "disable", "name": "BBB blue onepiece", "category_id1": "1", "category_id2": "1", "category_id3": "2", "image_url": "http://bbbbbbb.ccccc.jpg", "s1": "s1", "s2": "2"}
{"product_id": "10003", "status": "enable", "name": "BBB blue blouse", "category_id1": "1", "category_id2": "1", "category_id3": "3", "image_url": "http://bbbbbbb.ddddd.jpg", "s1": "", "s2": "s2"}
...
10001,enable,AAA red onepiece,1,1,2,http://aaaaaaa.bbbbb.jpg,1,2
10002,disable,BBB blue onepiece,1,1,2,http://bbbbbbb.ccccc.jpg,s1,2
10003,enable,BBB blue blouse,1,1,3,http://bbbbbbb.ddddd.jpg,,s2
...
[URI]
메서드 | URI |
---|---|
POST | /nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/index |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 Appkey 또는 서비스 Appkey |
serviceID | 해당 Appkey에 소속된 service_id |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
format | string | O | jsonl | jsonl 또는 csv |
[Form Data]
이름 | 타입 | 필수 여부 | 예제 | 설명 |
---|---|---|---|---|
link | string | △ | "https://cdn.my-domain.com/202106251000_product.jsonl" | 데이터 파일 URL |
file | file | △ | @filename | 데이터 파일 link가 file보다 우선 순위가 높아서 link가 있으면 file은 무시됨 |
curl -X POST "/nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/index?format=jsonl" -H "Content-Type: multipart/form-data" -F "file=@/home/user1/202106251000_product.jsonl"
curl -X POST "/nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/index?format=jsonl" -F "link=https://cdn.my-domain.com/202106251000_product.jsonl"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.indexID | string | O | 24bb94b3-8a6b-488e-b038-4f6038da2596 | 인덱스 ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"indexID": "24bb94b3-8a6b-488e-b038-4f6038da2596"
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-40010 | InvalidFileError | 파일 전달에 오류가 있는 경우 |
-40020 | NoDataError | 전달된 파일이 빈 파일인 경우 |
-40030 | ExceedDataSizeError | 전달된 파일이 정해진 용량 또는 정해진 데이터 개수를 초과한 경우 |
-40040 | IndexQuotaExceededException | 1일 요청 횟수를 초과한 경우 |
-40080 | TooManyRequestError | 동시에 여러 번 요청을 한 경우 |
-40400 | NoApiFound | 정의되지 않은 API로 요청한 경우 |
-41000 | UnauthorizedAppKey | 승인되지 않은 Appkey |
-42000 | NotExistServiceID | 등록되지 않은 서비스 아이디 |
-50000 | InternalServerError | 서버 오류 |
4041007 | URL Not Found | 정의되지 않은 API로 요청한 경우 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/services |
[Path Variable] |
이름 | 설명 |
---|---|
appKey | 통합 Appkey 또는 서비스 Appkey |
curl -X GET "/nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/services" -H "Content-Type: application/json"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalService | int | O | 3 | 서비스 개수 |
data.items[].documentCnt | int | O | 51128 | 전체 문서 개수 |
data.items[].remainInsertCnt | int | O | 3 | 남은 일일 색인 요청 가능 횟수 |
data.items[].service | string | O | aaa | 상품에서 등록한 service_id |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalService": 3
"items": [
{
"service": "aaa",
"remainInsertCnt": 3,
"documentCnt": 51128
},
{
"service": "bbb",
"remainInsertCnt": 2,
"documentCnt": 9778
},
{
"service": "ccc",
"remainInsertCnt": 0,
"documentCnt": 29841
}
]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-40400 | NoApiFound | 정의되지 않은 API로 요청한 경우 |
-41000 | UnauthorizedAppKey | 승인되지 않은 Appkey |
-50000 | InternalServerError | 서버 오류 |
4041007 | URL Not Found | 정의되지 않은 API로 요청한 경우 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/indexes |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 Appkey 또는 서비스 Appkey |
serviceID | 해당 Appkey에 소속된 service_id |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
start | int | O | 0 | 시작 인덱스 0부터 시작 |
limit | int | O | 100 | 최대 100 start:0, limit:100의 경우 1부터 100까지 start:200, limit:100 이면 201부터 300까지 |
order | string | X | "reservedTime:desc" | (기본값)등록 시간 내림 차순 조건 1개만 설정 가능 설정 가능 조건은 '정렬' 참조 |
status | string | X | "finished" | 색인의 상탯값 |
curl -X GET "/nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/indexes?start=0&limit=100&status=running&order=startTime:desc" -H "Content-Type: application/json"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.total | int | O | 100 | 검색된 전체 문서 개수 |
data.items[].service | String | O | testserviceid | 해당 색인요청이 발생한 서비스명 |
data.items[].id | String | O | 24bb94b3-8a6b-488e-b038-4f6038da2596 | 색인 ID |
data.items[].filename | String | O | 202106251000_product.jsonl | 색인 파일 이름 |
data.items[].status | string | O | reserved | 현재 색인 상태를 나타냅니다 reserved: 대기 running: 진행 중 failed: 전체 실패 finished: 완료(부분 실패 포함) |
data.items[].reservedTime | unix timestamp | O | 1625098033 | 색인 등록 시간 |
data.items[].startTime | unix timestamp | O | 1625098033 | 색인 시작 시간 |
data.items[].finishTime | unix timestamp | O | 1625098033 | 색인이 완료된 시간 |
data.items[].addCnt | Int | O | 234 | 추가된 문서 개수 |
data.items[].failCnt | Int | O | 31 | 실패한 문서 개수 Image Download 실패 등이 포함되며, 패션 아이템을 찾지 못한 경우도 포함. |
data.items[].deleteCnt | Int | O | 31 | 삭제된 문서 개수 |
data.items[].updateCnt | int | O | 592 | 수정된 문서 개수 |
data.items[].totalCnt | Int | O | 888 | 색인 총 문서 개수 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"total": 100,
"items":[{
"service": "testserviceid"
"id": "24bb94b3-8a6b-488e-b038-4f6038da2596",
"filename": "202106251000_product.jsonl",
"status": "reserved",
"reservedTime": 1627018935,
"startTime": 1627018935,
"finishTime": 1627018935,
"addCnt": 234,
"failCnt": 31,
"deleteCnt": 31,
"updateCnt": 592,
"totalCnt": 888
}]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-40400 | NoApiFound | 정의되지 않은 API로 요청한 경우 |
-41000 | UnauthorizedAppKey | 승인되지 않은 Appkey |
-42000 | NotExistServiceID | 등록되지 않은 서비스 아이디 |
-50000 | InternalServerError | 서버 오류 |
4041007 | URL Not Found | 정의되지 않은 API로 요청한 경우 |