API não está aceitando body da Documentação no Endpoint POST: /api/catalog_system/pvt/products/{productId}/specification

Saudações á todos!
Estou realizando a alteração de uma especificação de produto via API no Endpoint:
/api/catalog_system/pvt/products/{productId}/specification
E o body é listado na documentação não é aceito pela API.
Segue exemplo que é passado na documentação e logo em seguida o erro retornado.

[
    {
        "Value": [
            "Iron",
            "Plastic"
        ],
        "Id": 30,
        "Name": "Material"
    }
]

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type ‘VTEX.Commerce.CatalogApi.Web.Catalog.ProductFieldValueDto’ because the type requires a JSON object (e.g. {“name”:“value”}) to deserialize correctly.

Alguém saberia me dizer qual a forma correta de enviar o body da requisição?

Fiz um teste aqui com valores parecidos com os da documentação, mas deu certo.

  1. Primeiro, fiz um GET para ver os valores que já existiam:
curl --location --request GET 'https://{{accountName}}.vtexcommercestable.com.br/api/catalog_system/pvt/products/1/specification' \
--header 'VtexIdclientAutCookie: {{cookie}}' \
--header 'Content-Type: application/json' \
--data '[
    {
        "Value": [
            "Wavy"
        ],
        "Id": 18,
        "Name": "Curl Type"
    }
]'
  1. Depois, fiz um POST acrescentando um novo valor em uma spec:
curl --location 'https://{{accountName}}.vtexcommercestable.com.br/api/catalog_system/pvt/products/1/specification' \
--header 'VtexIdclientAutCookie: {{cookie}}' \
--header 'Content-Type: application/json' \
--data '[
    {
        "Value": [
            "Wavy",
            "Curly"
        ],
        "Id": 18,
        "Name": "Curl Type"
    }
]'
  1. Depois, GET de novo:
curl --location 'https://{{accountName}}.vtexcommercestable.com.br/api/catalog_system/pvt/products/1/specification' \
--header 'VtexIdclientAutCookie: {{cookie}}' \
--data ''

A response do último incluiu o novo valor que eu acrescentei, então parece ter funcionado:

[
    {
        "Value": [
            "Anti-Frizz"
        ],
        "Id": 19,
        "Name": "Benefit"
    },
    {
        "Value": [
            ""
        ],
        "Id": 21,
        "Name": "Eco-Friendly"
    },
    {
        "Value": [
            "Wavy",
            "Curly"
        ],
        "Id": 18,
        "Name": "Curl Type"
    }
]
1 Like