본문으로 건너뛰기

15. Product 서비스

client.product() 으로 접근합니다. 제품(Product)의 CRUD와 카운트를 제공합니다.

15.1 메서드 일람​

메서드반환 타입HTTP엔드포인트
create(ProductRequestV5)ProductResponseV5 또는 nullPOST/api/v5/product
update(product_id, ProductRequestV5)ProductResponseV5 또는 nullPUT/api/v5/product/{id}
delete(product_id)booleanDELETE/api/v5/product/{id}
get(product_id)ProductResponseV5 또는 nullGET/api/v5/product/{id}
list()List<ProductResponseV5>GET/api/v5/product
exists(product_id)booleanGET/api/v5/product/{id}/exists
count()longGET/api/v5/product/count

15.2 ProductRequestV5 / ProductResponseV5​

필드타입설명
product_idString제품 ID (PK)
product_nameString제품명
site_idString소속 사이트
descriptionString설명
external_systemString외부 시스템 이름(50자까지, 예: SAP) — external_id 와 쌍으로 식별한다. 시스템이 빈 ID 는 식별이 아니다
external_idString그 시스템 안의 제품 ID(100자까지). 쌍으로 찾기는 GET /api/v5/product/by-external/{system}/{external_id}
product_codeString제품 코드 (SKU)
categoryString카테고리
unit_of_measureString측정 단위 (EA, KG 등)

15.3 사용 예시​

제품 생성​

import plantpulse.api.v5.dto.request.ProductRequestV5;
import plantpulse.api.v5.dto.response.ProductResponseV5;

ProductRequestV5 req = new ProductRequestV5();
req.setProduct_id("PROD_A001");
req.setProduct_name("반도체 칩 A");
req.setSite_id("SITE_DJ");
req.setProduct_code("SKU-A001");
req.setCategory("반도체");
req.setUnit_of_measure("EA");
req.setExternal_system("ERP");
req.setExternal_id("ERP_P001");
req.setDescription("8nm 공정 반도체 칩");

ProductResponseV5 created = client.product().create(req);

조회​

ProductResponseV5 p = client.product().get("PROD_A001");
boolean exists = client.product().exists("PROD_A001");
long total = client.product().count();

카테고리별 그룹핑​

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

Map<String, List<ProductResponseV5>> byCategory = client.product().list().stream()
.collect(Collectors.groupingBy(ProductResponseV5::getCategory));

byCategory.forEach((cat, items) ->
System.out.printf("%s: %d개%n", cat, items.size()));

수정 / 삭제​

ProductRequestV5 update = new ProductRequestV5();
update.setProduct_id("PROD_A001");
update.setProduct_name("반도체 칩 A (v2)");
update.setSite_id("SITE_DJ");
update.setProduct_code("SKU-A001");
update.setUnit_of_measure("EA");
client.product().update("PROD_A001", update);

client.product().delete("PROD_A001");

다음 단계​