2017-01-26 3 views
0

카탈로그 끝점에 새 경로를 만들었습니다. Product의 JSON 표현을 수락하고 데이터베이스에 추가한다고 가정합니다.Broadleaf Commerce REST API 용 JSON의 형식을 지정하는 방법 - Wrapper는 구성원이 null입니까?

public ProductWrapper insertProduct(HttpServletRequest request, ProductWrapper wrapper) 
{ 
    return wrapper; 
} 


@RequestMapping(value="product",method=RequestMethod.POST) 
public ProductWrapper addProduct(HttpServletRequest request, ProductWrapper wrapper){ 
    return insertProduct(request, wrapper); 
} 

하지만 메시지의 본문에 JSON을 넣을 때. 그것을 래퍼에 저장하지 않습니다. 내 JSON은 다음과 같습니다.

{ 
    "id": 1, 
    "name": "Sudden Death Sauce", 
    "longDescription": "As my Chilipals know, I am never one to be satisfied. Hence, the creation of Sudden Death. When you need to go beyond... Sudden Death will deliver! ", 
    "retailPrice": { 
    "amount": "10.99", 
    "currency": "USD" 
    }, 
    "primaryMedia": { 
    "id": 101, 
    "title": "Sudden Death Sauce Bottle", 
    "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Bottle.jpg", 
    "altText": "primary" 
    }, 
    "active": true, 
    "activeStartDate": "2017-01-25T16:32:36.993-0500", 
    "manufacturer": "Blair's", 
    "defaultCategoryId": 2002, 
    "productAttribute": [ 
    { 
     "id": 1, 
     "productId": 1, 
     "attributeName": "heatRange", 
     "attributeValue": "4" 
    } 
    ], 
    "media": [ 
    { 
     "id": 102, 
     "title": "Sudden Death Sauce Close-up", 
     "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Close.jpg", 
     "altText": "alt1" 
    }, 
    { 
     "id": 101, 
     "title": "Sudden Death Sauce Bottle", 
     "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Bottle.jpg", 
     "altText": "primary" 
    } 
    ] 
} 

누락 된 항목이 있습니까? 나는 브레이크 포인트를 놓고 잘 쳤다. 래퍼가 인스턴스화되었지만 모든 멤버가 null입니다.

답변

1

당신은 @RequestBody으로 wrapper 매개 변수를 주석과도상의 accepts을 추가 할 필요가 당신의 @RequestMapping : 당신이 당신의 요청을 보낼 수 있도록 Content-Type=application/json이 봄처럼, 당신은뿐만 아니라 Content-Type 헤더를 보낼 수 있는지 확인

@RequestMapping(value="product",method=RequestMethod.POST, accepts="application/json") 
public ProductWrapper addProduct(HttpServletRequest request, @RequestBody ProductWrapper wrapper){ 
    return insertProduct(request, wrapper); 
} 

그것을 적절히 직렬화 할 것이다.

+0

트릭을 해 주셔서 감사합니다. –