REST API Memperbarui Produk Metode HTTP PUT atau POST?

10

Dokumentasi REST API mengatakan bahwa itu PUT /V1/products/{sku}menciptakan alih-alih pembaruan.

Apakah itu kesalahan dalam dokumen karena saya akan berasumsi bahwa itu adalah metode pembaruan dan POST menjadi metode untuk membuat?

Patrik Lundgren
sumber

Jawaban:

5

Rute POST dan PUT ke metode yang sama disimpan, tetapi dengan POST Anda tidak bisa lewat sku

  <route url="/V1/products" method="POST">
        <service class="Magento\Catalog\Api\ProductRepositoryInterface" method="save"/>
        <resources>
            <resource ref="Magento_Catalog::products" />
        </resources>
    </route>
    <route url="/V1/products/:sku" method="PUT">
        <service class="Magento\Catalog\Api\ProductRepositoryInterface" method="save" />
        <resources>
            <resource ref="Magento_Catalog::products" />
        </resources>
    </route>
KAndy
sumber
1
Ok itu bisa dimengerti tetapi mengapa dokumen mengatakan bahwa PUT juga menciptakan produk? Maksud saya sku di jalur selalu untuk mengidentifikasi suatu produk bukan? Atau bisakah seseorang benar-benar membuat produk menggunakan PUT / V1 / products /: sku juga?
Patrik Lundgren
Anda harus menggunakan Posting untuk membuat dan Menempatkan untuk memperbarui operasi. Dokumentasi di-autogenerasi dari dockblock, inilah mengapa put dan postingan memiliki deskripsi yang sama
KAndy
1

Melihat halaman ini: http://devdocs.magento.com/guides/m1x/api/rest/Resources/Products/products.html#RESTAPI-Resource-Product-HTTPMethod-PUT-products--id

Saya bisa melihat untuk PUT:

Deskripsi: Memungkinkan Anda memperbarui produk yang ada.

Raphael di Digital Pianism
sumber
Ini dokumen untuk
magento
Maaf saya seharusnya menulis dalam teks bahwa ini mengenai Magento 2, halaman itu tentang v1.
Patrik Lundgren
Dan maaf karena tidak membaca bahwa KAndy sudah menunjukkan ini :-) Saya seorang pemula yang lengkap ketika datang ke stackexchange
Patrik Lundgren
1
Yah terlepas dari versi magento utama, API sisanya memiliki versi yang sama, bukan? Jadi ada beberapa kegunaan dalam menunjukkan ini.
hakre
1

Saya punya masalah yang sama tetapi dalam kasus saya, PUT tidak berfungsi dengan baik karena:

1) Cari semua produk kereta:

GET: http://my_host.dev/index.php/rest/V1/carts/8/items

(Saya belum tahu bagaimana menemukan keranjang klien ) Saya menemukan nomor yang benar dengan menambah jumlahnya dari 1.

2) jawabannya adalah:

[ { "item_id": 11, "sku": "MH07-M-Green", "qty": 1, "name": "Hero Hoodie", "price": 54, "product_type": "configurable", "quote_id": "8", "product_option":{ "extension_attributes":{ "configurable_item_options":[{"option_id": "90", "option_value": 53 }, {"option_id": "138",…] } } } ]

2) Perbarui harga barang keranjang dengan:

{ "cartItem": { "itemId": 11, "sku": "MH07-M-Green", "qty": 2, "name": "Hero Hoodie", "price": 1000, "productType": "configurable ", "quoteId": "8" } }

3) Saya tidak mendapatkan harga barang yang diperbarui dalam keranjang (Tanggapan saya sama seperti pada poin 1). Saya harus mengatakan juga bahwa saya dapat menghapus Item dari keranjang. Ada solusi untuk ini?

Terima kasih

Grunthor
sumber