[API 도메인]
도메인 |
---|
https://api-aifashion.nhncloudservice.com |
이름 | 필드명 |
---|---|
카테고리 1depth | category1_id |
카테고리 2depth | category2_id |
카테고리 3depth | category3_id |
필터 1 | s1 |
필터 2 | s2 |
filter.{필드명}
=연산자
:값
조건 | 연산자 | 예제 | 설명 |
---|---|---|---|
equal(default) | equal | filter.category2_id=1003,1005 or filter.category2_id=equal:1003 or filter.category2_id=equal:1003&filter.s1=equal:1 |
대상 필드의 값이 파라미터 값과 같은 문서만 결과로 응답합니다. 콤마(,)로 구분하여 OR 검색이 가능합니다. |
not equal | !equal | filter.category2_id=!equal:1003 or filter.category2_id=!equal:1003,1005 or filter.category2_id=!equal:1003,1005&filter.s1=!equal:1 |
대상 필드의 값이 파라미터 값과 다른 문서만 결과로 응답합니다. 콤마(,)로 구분하여 OR 검색이 가능합니다. |
[응답 본문 헤더]
이름 | 타입 | 설명 |
---|---|---|
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"
}
}
[URI]
메서드 | URI |
---|---|
POST | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID} |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
curl -X POST "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}"
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42010 | DuplicateServiceName | 중복된 서비스명 |
-42030 | ServiceQuotaExceededException | 허용된 서비스 개수 초과 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
DELETE | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID} |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
curl -X DELETE "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}"
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion/v1.0/appkeys/{appKey}/services |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
curl -X GET "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/services"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalCount | Number | O | 5 | 총 검색 결과 개수 |
data.items[].serviceID | String | O | my-service | 서비스명 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalCount": 2,
"items": [{
"serviceID": "my-service"
},
{
"serviceID": "second_service"
}
]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/product/{productID} |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
productID | 상품 아이디 |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
limit | int | O | 100 | 최대 크기 1 이상 200 이하로 설정 가능 |
filter.category1_id | string | X | equal:3 | category1_id 값으로 필터링 |
filter.category2_id | string | X | !equal:3 | category2_id 값으로 필터링 |
filter.category3_id | string | X | !equal:3 | category3_id 값으로 필터링 |
filter.s1 | string | X | equal:3 | s1 값으로 필터링 |
filter.s2 | string | X | !equal:3 | s2 값으로 필터링 |
threshold | float32 | X | 0.8 | 매칭 여부를 판단하는 유사도 기준값 data.items[].similarity >= threshold인 항목만 매칭되는 것으로 판단합니다. 0 초과 1.0 이하로 설정 가능 |
curl -X GET "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/product/{productID}?limit=100&filter.s1=equal:1"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalCount | Number | O | 100 | 총 검색 결과 개수 |
data.query | String | O | productID=10234455&limit=100 | 검색 질의 |
data.items[].similarity | Number | O | 0.91234 | 검색 유사도 점수 |
data.items[].productID | String | O | 8980335 | 상품 아이디 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalCount": 100,
"query": "productID=10234455&limit=100",
"items": [{
"similarity": 0.91234,
"productID": "8980335"
},
{
"similarity": 0.81234,
"productID": "7980335"
}
]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-40050 | NotFoundProductId | 상품 아이디가 없음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/detect |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
path | String | O | https://imagecdn.co.kr/sample_image.jpg |
URL 인코딩된 이미지의 URL |
curl -X GET "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/detect?path=https%3A%2F%2Fimagecdn.co.kr%2Fsample_image.jpg"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalCount | Number | O | 100 | 총 검색 결과 개수 |
data.query | String | O | path=https://imagecdn.co.kr/sample_image.jpg |
검색 질의 |
data.items[].link | String | O | eyJwYXRoIjoHR0cHM6Ly9zMy11cy13ZXN0LTIuW...VlfX0= | 감지된 패션 아이템으로 유사 상품 검색에서 사용할 값 |
data.items[].center | float64 array | O | [0.825047801147227, 0.330948979591837] | 감지된 아이템의 중앙 x, y 좌표 % |
data.items[].b0 | float64 array | O | [0.676864247418738, 0.219377551020408] | 감지된 아이템의 x0, y0 좌표 % |
data.items[].b1 | float64 array | O | [0.973231355525813, 0.4426204081632654] | 감지된 아이템의 x1, y1 좌표 % |
data.items[].score | float32 | O | 0.9732 | 감지된 아이템의 신뢰도 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalCount": 2,
"query": "path=https%3A%2F%2Fimagecdn.co.kr%2Fsample_image.jpg",
"items": [{
"link": "eyJwYXRoIjoHR0cHM6Ly9zMy11cy13ZXN0LTIuW1hem9uYXdzLmNvbS9mZy1pbWFnZS1zZWFyY2gvMjAxOTEyMDIvNDIyMDZmWYtYWI0Ni00Zjk2LThkYWItZGRkZjllMTI3VjLm9jdGV0LXN0cmVbsInR5cGUiOiJBTEwiLCJpbnB1dHMiOlt7ImJveCI6eyJsZWZ0IjozNQsInRvcCI6MTcyLCJ3aWR0aCI6MTU1LCJoZWlnaHQiOjE3NX0sInNjb3JlIjowg4NjAyODcwNzAyNzQzNTMsInR5cGUiOiJKQUNLRVfV0sImNvbmZpZ3MiOnsiY2FtZXJjp0cnVlfX0=",
"center": [0.825047801172275, 0.330998979591837],
"b0": [0.676864244718738, 0.219387751020408],
"b1": [0.973231357555813, 0.4426020401632654],
"score": 0.97323
},
{
"link": "eyJwYXRoIjoiaHR0cHM6Ly9zMy11cy13ZXN0LTIuW1hem9uYXdzLmNvbS9mZy1pbWFnZSZWFyY2gvMjAxOTEyMDIvNDIyMDZmWYtYWI0Ni00Zjk2LThkYWItZGRkZjllMTI3OWVm9jdGV0LXN0cmSIsInR5cGUiOiJBTEwiLpbnB1dHMiOlt7ImJveCI6eyJsZWZ0IjozNQsInRvcCI6MyLCJ3aWR0aCI6MTU1LCJoZWlnaHQiOjE3NX0sInNjb3JlIjowLjg4NjAyODcwNzAyNzQzNTMsInR5cGUiOiJKQUNLRVQifV0sImNvbmZpZiOnsiY2FtZXJhIjp0cnVlfX0=",
"center": [0.3929254301032506, 0.572066265306123],
"b0": [0.3288718929253023, 0.506377551204082],
"b1": [0.456978967952199, 0.637751020408163],
"score": 0.97123
}
]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-45020 | ImageTooLargeException | 이미지 파일의 크기가 너무 큼 이미지 가이드 참고 |
-45040 | InvalidImageFormatException | 지원하지 않는 이미지 파일 형식 이미지 가이드 참고 |
-45050 | InvalidImageURLException | 접근할 수 없는 URL |
-45060 | ImageTimeoutError | 이미지 다운로드 시간 초과 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/image |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
limit | int | O | 100 | 최대 크기 1 이상 200 이하로 설정 가능 |
link | string | O | eyJwYXRoIjoHR0cHM6Ly9zMy11cy13ZXN0LTIuW...VlfX0%3D | detect API에서 전달받은 link(URL 인코딩 필요) |
filter.category1_id | string | X | equal:3 | category1_id 값으로 필터링 |
filter.category2_id | string | X | !equal:3 | category2_id 값으로 필터링 |
filter.category3_id | string | X | !equal:3 | category3_id 값으로 필터링 |
filter.s1 | string | X | equal:3 | s1 값으로 필터링 |
filter.s2 | string | X | !equal:3 | s2 값으로 필터링 |
threshold | float32 | X | 0.8 | 매칭 여부를 판단하는 유사도 기준값 data.items[].similarity >= threshold인 항목만 매칭되는 것으로 판단합니다. 0 초과 1.0 이하로 설정 가능 |
curl -X GET "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/image?limit=100&link=eyJwYXRoIjoiaHR0cHM6Ly9zMy11cy13ZXN0LTIuW1hem9u1XdzLmNvbS9mZy1pbWFnZSZWFyY2gvMjAxOTEyMDIvNDIyMDZmWYtYWI0Ni00Zjk2LThkYWItZGRkZjllMTI3OWVm9jdGV0LXN0cmSIsInR5cGUi0iJBTEwiLpbnB1dHMiOlt7ImJveCI6eyJsZWZ0IjozNQaInRvcCI6MyLCJ3aWR0aCI6MTU1LCJoZWlnaHQiOjE3NX0sInNjb3JlIjowLjg4NjAyODcwNzAyNzQzNTMsInR5cGUiOiJKQUNLRVQifV0sImNvbmZpZiOnsiY2FtZXJhIjp0cnVlfX0%3D&filter.s1=equal:1"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalCount | Number | O | 100 | 총 검색 결과 개수 |
data.query | String | O | link=eyJwYXRoIjoHR0cHM6Ly9zMy11cy13ZXN0LTIuW...VlfX0=&limit=100 | 검색 질의 |
data.items[].similarity | Number | O | 0.91234 | 검색 유사도 점수 |
data.items[].productID | String | O | 8980335 | 상품 아이디 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalCount": 100,
"query": "link=eyJwYXRoIjoiaHR0cHM6Ly9zMy11cy13ZXN0LTIuW1hem9uYXdzLmNvbS9mZy1pbWfnZSZWFyY2gvMjAxOTEyMDIvNDIyMDZmWYtYWI0Ni00Zjk2LThkYWItZGRkZjllMTI3OWVm9jdGV0LXN0cmSIsInR5cGUiOiJBTEwiLpbnB1dHMi0lt7ImJveCI6eyJsZWZ0IjozNQsInRvcCI6MyLCJ3aWa0aCI6MTU1LCJozWlnaHQiOjE3NX0sInNjb3JlIjowLjg4NjAyODcwNzAyNzQzNTMsInR5cGUiOiJKQUNLRVQifV0sImNvbmZpZiOnsiY2FtZXJhIjp0cnVlfX0=&limit=100",
"items": [{
"similarity": 0.91234,
"productID": "8980335"
},
{
"similarity": 0.81234,
"productID": "7980335"
}
]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-45020 | ImageTooLargeException | 이미지 파일의 크기가 너무 큼 이미지 가이드 참고 |
-45040 | InvalidImageFormatException | 지원하지 않는 이미지 파일 형식 이미지 가이드 참고 |
-45050 | InvalidImageURLException | 접근할 수 없는 URL |
-45060 | ImageTimeoutError | 이미지 다운로드 시간 초과 |
-45070 | NoDetectedFashionItems | 감지된 패션 아이템 없음 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/tag |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
path | String | O | https://imagecdn.co.kr/sample_image.jpg |
URL 인코딩된 이미지 URL |
lang | String | X | ko | 라벨의 언어(기본값: en) en: English ko: Korean jp: Japanese |
item_limit | int | X | 3 | 이미지에서 발견된 패션 아이템 중 태그 정보를 응답할 아이템 숫자 아이템의 너비가 긴 순서로 정렬(기본값: 1) 최대 크기 1 이상 4 이하로 설정 가능 |
curl -X GET "${domain}/nhn-ai-fashion/v1.0/appkeys/{appKey}/service/{serviceID}/tag?path=https%3A%2F%2Fimagecdn.co.kr%2Fsample_image.jpg&lang=ko&item_limit=3"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalCount | Number | O | 2 | 총 검색 결과 개수 |
data.query | String | O | path=https://imagecdn.co.kr/sample_image.jpg&lang=ko&item_limit=3 |
검색 질의 |
data.items[].type | String | O | JACKET | 감지된 아이템의 유형 |
data.items[].score | float32 | O | 0.9515 | 감지된 아이템의 신뢰도 |
data.items[].tags | Array of json object | O | 감지된 아이템 태그 정보의 배열 | |
data.items[].tags[].attribute | String | O | category | 태그의 속성 |
data.items[].tags[].labels | Array of json object | O | 태그 라벨의 배열 | |
data.items[].tags[].labels[].label | String | O | 블라우스 | Blouse | 태그 라벨 URL 파라미터의 lang에 의해 응답 언어가 달라짐 |
data.items[].tags[].labels[].score | float32 | O | 0.9545 | 태그 라벨의 신뢰도 |
data.items[].center | float64 array | O | [0.825047801147227, 0.330948979591837] | 감지된 아이템의 중앙 x, y 좌표 % |
data.items[].b0 | float64 array | O | [0.676864247418738, 0.219377551020408] | 감지된 아이템의 x0, y0 좌표 % |
data.items[].b1 | float64 array | O | [0.973231355525813, 0.4426204081632654] | 감지된 아이템의 x1, y1 좌표 % |
응답 본문 예
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"totalCount": 2,
"query": "path=https%3A%2F%2Fimagecdn.co.kr%2Fsample_image.jpg&lang=ko&item_limit=3",
"items": [{
"type": "SHIRT",
"tags": [{
"attribute": "category", "labels": [{ "label": "블라우스", "score": 0.9966272115707397 }]
}, {
"attribute": "color", "labels": [{ "label": "베이지/아이보리", "score": 0.7692235112190247 }]
}, {
"attribute": "pattern", "labels": [{ "label": "무지", "score": 0.9893960356712341 }]
}, {
"attribute": "fabric", "labels": [{ "label": "실크", "score": 0.586938738822937 }]
}, {
"attribute": "neckline", "labels": [{ "label": "셔츠칼라", "score": 0.9922573566436768 }]
}, {
"attribute": "shoulder", "labels": [{ "label": "퍼프/볼륨", "score": 0.5369117856025696 }]
}, {
"attribute": "sleeve_length", "labels": [{ "label": "긴소매", "score": 0.6998409032821655 }]
}, {
"attribute": "sleeve_shape", "labels": [{ "label": "스트레이트/일자", "score": 0.689109206199646 }]
}, {
"attribute": "length_up", "labels": [{ "label": "허리선", "score": 0.9575495719909668 }]
}, {
"attribute": "age", "labels": [{ "label": "어른", "score": 0.9985153079032898 }]
}, {
"attribute": "gender", "labels": [{ "label": "여성", "score": 0.9960111379623413 }]
}, {
"attribute": "detail", "labels": [{ "label": "버튼", "score": 0.9440848231315613 }]
}, {
"attribute": "fit", "labels": [{ "label": "기본핏/레귤러핏", "score": 0.789472222328186 }]
}],
"center": [ 0.46125, 0.34125 ],
"b0": [ 0.1875, 0.0175 ],
"b1": [ 0.735, 0.665 ],
"score": 0.93118
}, {
"type": "SKIRT",
"tags": [{
"attribute": "category", "labels": [{ "label": "스커트", "score": 0.9997897744178772 }]
}, {
"attribute": "color", "labels": [{ "label": "브라운/갈색", "score": 0.8597127199172974 }]
}, {
"attribute": "pattern", "labels": [{ "label": "무지", "score": 0.988312304019928 }]
}, {
"attribute": "fabric", "labels": [{ "label": "캔버스", "score": 0.24775846302509308 }]
}, {
"attribute": "length_lo", "labels": [{ "label": "숏", "score": 0.9987099170684814 }]
}, {
"attribute": "age", "labels": [{ "label": "어른", "score": 0.9993846416473389 }]
}, {
"attribute": "gender", "labels": [{ "label": "여성", "score": 0.9950520396232605 }]
}, {
"attribute": "detail", "labels": [{ "label": "랩스타일", "score": 0.7058117985725403 }]
}, {
"attribute": "fit", "labels": [{ "label": "기본핏/레귤러핏", "score": 0.9844645857810974 }]
}, {
"attribute": "shape", "labels": [{ "label": "A라인/플레어", "score": 0.9432026743888855 }]
}],
"center": [ 0.5, 0.69125 ],
"b0": [ 0.28, 0.445 ],
"b1": [ 0.72, 0.9375 ],
"score": 0.939945
}]
}
}
resultCode | resultMessage | 설명 |
---|---|---|
-40000 | InvalidParam | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-45020 | ImageTooLargeException | 이미지 파일의 크기가 너무 큼 이미지 가이드 참고 |
-45040 | InvalidImageFormatException | 지원하지 않는 이미지 파일 형식 이미지 가이드 참고 |
-45050 | InvalidImageURLException | 접근할 수 없는 URL |
-45060 | ImageTimeoutError | 이미지 다운로드 시간 초과 |
-50000 | InternalServerError | 서버 오류 |
이름 | field | value type | 필수 | max length | 비고 |
---|---|---|---|---|---|
상품ID | product_id | string | O | 72 | 유니크 키 |
상태 | 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", "category1_id": "1", "category2_id": "1", "category3_id": "2", "image_url": "http://aaaaaaa.bbbbb.jpg", "s1": "1", "s2": "2"}
{"product_id": "10002", "status": "disable", "name": "BBB blue onepiece", "category1_id": "1", "category2_id": "1", "category3_id": "2", "image_url": "http://bbbbbbb.ccccc.jpg", "s1": "s1", "s2": "2"}
{"product_id": "10003", "status": "enable", "name": "BBB blue blouse", "category1_id": "1", "category2_id": "1", "category3_id": "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 | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
[URL Parameter]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
format | string | O | jsonl | jsonl 또는 csv |
[Request Body]
Content-Type : multipart/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 | 전달된 파일이 정해진 용량 또는 정해진 데이터 개수를 초과한 경우 |
-40080 | TooManyRequestError | 동시에 여러 번 요청을 한 경우 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/services |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
curl -X GET "/nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/services"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
data.totalService | int | O | 3 | 서비스 개수 |
data.items[].documentCnt | int | O | 51128 | 전체 문서 개수 |
data.items[].remainInsertCnt | int | O | 3 | 서비스 당 색인 요청 가능 횟수 |
data.items[].service | string | O | aaa | 서비스명 |
{
"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 | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-50000 | InternalServerError | 서버 오류 |
[URI]
메서드 | URI |
---|---|
GET | /nhn-ai-fashion-maker/v1.0/appkeys/{appKey}/service/{serviceID}/indexes |
[Path Variable]
이름 | 설명 |
---|---|
appKey | 통합 앱키 또는 서비스 앱키 |
serviceID | 서비스명 |
[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 | 정렬 조건(기본값: requestedTime:desc) 설정 가능 조건은 정렬 참조 |
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"
[응답 본문 데이터]
이름 | 타입 | 필수 | 예제 | 설명 |
---|---|---|---|---|
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 | 실패한 문서 개수 이미지 다운로드 실패 등이 포함되며, 패션 아이템을 찾지 못한 경우도 포함. |
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 | 파라미터에 오류가 있음 |
-41000 | UnauthorizedAppKey | 승인되지 않은 앱키 |
-42000 | NotExistService | 존재하지 않는 서비스 |
-50000 | InternalServerError | 서버 오류 |