WebTex3D Viewer / Simulation Api

영우씨엔아이 개발실

17.11.17

이 문서는 영우씨엔아이의 webtex3D를 구성 하고 있는 Data를 요청하여 얻은 정보를 활용 할 수 있게 작성 된 문서입니다. webtex3D시스템은 크게 Product 카테고리와 Fabric 카테고리를 축으로 작동합니다. 따라서, 두 카테고리의 전체 구조를 받아 올 수 있는 api도 존재 합니다. 다만, 서진염직 - realFabric의 경우 사전에 협의 된 구성에 따라 지정 된 Category만 사용 하게 되어 있기 때문에 api의 전체 기능을 전부 사용 할 필요는 없습니다. 따라서, 실무 개발자의 경우 개발에 착수 하기 전에 지정 된 Category의 id값과 name을 전달 받게 되며, 전달 받은 값을 상수로 요청하게 될 것입니다.

web server 기본 정보 및 계정정보

http://210.222.130.105:7000/

id  : admin

pw : duddn3d

1. Product

1)  getAllProductCategory

- url : 210.222.130.105:7000/api/get_all_product_category

- Return : 제품 카테고리 json 트리 구조

{‘id’ : 카테고리의pk, ‘categoryName’ : 카테고리이름, ‘children’ : {부모와 같은 구조의 하위 카테고리 list}

- Description : webtex3D 서버에 올라 와 있는 제품의 카테고리를 json 트리 구조로 요청하는 url, 더 이상 하 위 카테고리를 가지고 있지 않다면 children 항목이 빈 값으로 오게 됩니다.

2)  getProductCategory

- url : 210.222.130.105:7000/api/get_product_category

- Request : GET

- Key : CID(product category id)

- Return : CID를 키 값으로 보낸 id(pk) 값에 해당하는 카테고리부터 시작하는 제품 카테고리 son 트리구조.

- Description : getAllProductCategory와 같은 형식으로 구성 되어 있으나 전체 트리 구조가 아닌 일부 트리 구조만 받아 올 수 있게 되어 있습니다.

3)  getProductList

- url : 210.222.130.105:7000/api/get_product_list

- Request : GET

- Key : CID(product category id)

- Return : [{‘id’ : (int)pk, ‘category_id’ :  (int)category.pk, ‘name’ : (String)name, ‘image’ : url, …}…]

- Description : 하위 카테고리를 가지지 않는 가장 말단의 카테고리에는 simulation의 대상이 되는 다양한 Product가 업로드 되어 있습니다. CID를 키 값으로 카테고리의 id(pk)를 요청하면 해당 카테고리에 속해 있는 Product의 정보를 json 형태로 나열 해서 보여 주게 됩니다. 이 작업을 통해서 얻을 수 있는 정보로 UI를 구성 하거나 simulation을 수행 할 수 있습니다.

4) getProduct

- url : 210.222.130.105:7000/api/get_product

- Request : GET

- Key : PID(product id)

- Return : {‘id’ : (int)pk, ‘category_id’ :  (int)category.pk, ‘name’ : (String)name, ‘image’ : url, …}

- Description : 단일 Product의 정보를 얻고 싶을 때 사용 합니다. 얻을 수 있는 정보는 getProductList와 같 으나, 지정 된 하나의 id(pk)에 대한 정보만 보여 줍니다.

2. Fabric

1)  getOneLevelFabricCategory

- url : 210.222.130.105:7000/api/get_one_level_fabric_category

- Return : [{‘pk’ : (int)id, ‘model’ : Django.model,

‘ﬁelds’ : {

‘supercategory’ : (int)id,

‘ordervalue’ : int(ordervalue),

‘valid’ : Boolean,

‘name’ : (String)CategoryName,

‘level’ : (int)LevelValue

}

}, …]

- Description : 가장 상위에 있는 원단 카테고리의 목록을 얻을 때 사용 합니다. pk는 해당 카테고리의 pk이며,  model은 Python-django 의 model이므로 구성상의 역할은 없습니다. pk값과 ﬁelds의 값을 이용해서 원하 는 작업을 할 수 있습니다. supercategory는 해당 카테고리의 상위 카테고리 pk값을 나타냅니다. 최 상위 카 테고리일 경우 Null 로 나타 날 수 있습니다. ordervalue는 동일한 상위 카테고리를 가지고 있는 카테고리의 그룹끼리 정렬 할 경우 사용 되는 정렬 값 입니다. valid는 공개 및 비공개 결정 값입니다. ordervalue와 valid 는 viewer기능을 구성 할 때는 고려 하지 않으셔도 됩니다. name은 카테고리의 이름 입니다. level은 카테고 리의 레벨 값이며 1부터 시작합니다. 작은 숫자일 수록 높은 단계의 카테고리이며 3level 까지 있습니다.

2)  getFabricCategory

- url : 210.222.130.105:7000/api/get_fabric_category

- Request : GET

- Key : CID(fabric category id)

- Return : 2-1)과 동일

- Description : 전체적으로 2-1)과 비슷한 형태를 띄고 있습니다. CID를 키 값으로 보낸 id(pk) 값에 해당하는 카테고리의 자식 카테고리를 보여 줍니다. Level2 카테고리의 경우 한단계 더 들어 갈 수도 있습니다.

3)  getFabricList

- url : 210.222.130.105:7000/api/get_fabric_list

- Request : GET

- Key : CID(fabric category id)

- Return : [{‘pk’ : (int)id, ‘model’ : Django.model,

‘ﬁelds’ : {

‘category’ : (int)id,

‘image’ : url(String),

‘thumb’ : url(String),

…

}

}, …]

- Description : 카테고리 내에 속해 있는 Fabric의 정보를 나열합니다. pk는 simulation 기능을 사용 하기 위 한 value값이 되기도 합니다. ﬁelds에는 여러 값이 있지만 중요한 값은 category, image, thumb입니다. category는 해당 Fabric이 속한 category의 pk 값입니다. image는 Fabric의 이미지경로, thumb는 썸네 일로 사용 할 만한 작은 이미지의 경로입니다.

4)  getFabric

- url : 210.222.130.105:7000/api/get_fabric

- Request : GET

- Key : FID(fabric id)

- Return : {‘pk’ : (int)id, ‘model’ : Django.model,

‘ﬁelds’ : {

‘category’ : (int)id,

‘image’ : url(String),

‘thumb’ : url(String),

…

}

- Description : 2-3)과 거의 같습니다. 단일 Fabric의 정보를 얻어 오는 것이 다릅니다.

5)  saveFabric

- url : 210.222.130.105:7000/api/save_fabric

- Request : POST

- Key : FABRIC-IMAGE(fabric image ﬁle), FCID(fabric category id)

- Return : {‘id’ : (int)pk, ‘name’ : (String)name, ‘ﬁlepath’ : url, ‘thum_url’ : url, ‘dpi’ : (int)dpi, …}

- Description : Fabric을 webtex3D 서버에 업로드 하는 기능입니다. 업로드 할 이미지 파일과 업로드 될 카 테고리를 각각 ‘FABRIC-IMAGE’와 ‘FCID’를 키 값으로 하여 전송 합니다. 원단 업로드가 성공하면 업로드 된 Fabric의 정보를 되돌려 줍니다. 원단의 이름은 ﬁle의 이름을 기준으로 설정 됩니다. 이미지에 지정 된 dpi 정보가 없다면 기본 dpi (200)로 지정 됩니다.

210.222.130.105:7000/api/save_fabric_form 으로 테스트 가능합니다

3. Simulation

1) Simulation

- url : 210.222.130.105:7000/api/simulation

- Request : POST

- Key : PID(product id), FIDS(fabric id)

- Return : {‘success’ : Boolean, ‘url’ : url}

- Description : Product의 id와 Fabric의 id를 전송하여 원단 시뮬레이션이 완료 된 image의 url을 되돌려 줍 니다.

210.222.130.105:7000/api/simulation_form 으로 테스트 가능합니다

4. 활용 팁

서진염직-RealFabric 시스템에서 주로 활용 하게 될 기능은

- 1-3) getProductList

- 2-5) saveFabric

- 3-1) Simulation 입니다

다른 기능들도 활용 될 여지가 있으나 지정 된 카테고리 안에서 작동 하는 경우가 많기 때문에 위에 기재 한 세가 지 기능을 잘 활용 한다면 충분 할 것 같습니다.

Html form 및 ajax 비동기 통신으로 활용이 가능하며, 동일한 방식으로 구성 된 http://stylefor.us가 있습니다. 간단한 확인을 위해 /api/save_fabric_form, /api/simulation_form을 사용 해 볼 수 있습니다.