REST API अपडेट उत्पाद HTTP विधि PUT या POST?


10

REST API दस्तावेज़ीकरण कहता है कि PUT /V1/products/{sku}अपडेट के बजाय बनाता है।

क्या डॉक्स में कोई त्रुटि है क्योंकि मैंने यह मान लिया होगा कि यह एक अपडेट विधि है और POST बनाने की विधि है?

जवाबों:


5

POST और PUT मार्ग समान विधि को सहेजते हैं, लेकिन POST के साथ आप पास नहीं हो सकते 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>

1
ठीक है कि समझ में आता है, लेकिन डॉक्स यह क्यों कहेंगे कि PUT एक उत्पाद भी बनाता है? मेरा मतलब है कि पथ में sku हमेशा एक उत्पाद की पहचान के लिए है न? या क्या कोई वास्तव में PUT / V1 / उत्पादों /: sku का उपयोग करके उत्पाद बना सकता है?
पैट्रिक लुंडग्रेन 10

आपको अपडेट ऑपरेशन के लिए पोस्ट और निर्माण के लिए पोस्ट का उपयोग करना चाहिए। डॉकब्लॉक से डॉक्युमेंटेशन को ऑटोजेनर किया गया है, इसीलिए इसे पोस्ट और पोस्ट में एक ही विवरण दिया गया है
KAndy

1

इस पृष्ठ को देखते हुए: http://devdocs.magento.com/guides/m1x/api/rest/Resource/Products/products.html#RESTAPI-Resource-Products-HTTPMethod-PUT-products--id

मैं PUT के लिए देख सकते हैं:

विवरण: आपको किसी मौजूदा उत्पाद को अपडेट करने की अनुमति देता है।


यह Magento 1.x
KAndy

क्षमा करें मुझे पाठ में लिखा जाना चाहिए था कि यह Magento 2 के बारे में था, यह पृष्ठ v1 के बारे में है।
पेट्रिक लुंडग्रेन

और पढ़ने के लिए खेद नहीं है कि कैंडि ने पहले ही यह इंगित कर दिया है :-) मैं एक पूर्ण शुरुआत करता हूं जब यह स्टैकएक्सचेंज की बात आती है
पेट्रीक लुंडग्रेन

1
प्रमुख मैगेंटो संस्करण की परवाह किए बिना, बाकी एपीआई में एक ही संस्करण है, है ना? तो यह इंगित करने में कुछ उपयोग है।
हकर्रे

1

मुझे एक समान समस्या है लेकिन मेरे मामले में, PUT ठीक से काम नहीं करता है क्योंकि:

1) गाड़ी के सभी उत्पादों को पूरा करें:

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

(मुझे अभी तक पता नहीं है कि क्लाइंट कार्टआईड कैसे पाया जाता है) मुझे 1 से संख्या बढ़ाकर सही संख्या मिली।

2) उत्तर था:

[ { "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) अपडेट कार्ट आइटम मूल्य द्वारा:

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

3) मुझे कार्ट में अपडेटेड आइटम मूल्य नहीं मिलता है (मेरी प्रतिक्रिया बिंदु 1 की तरह ही है)। मुझे यह भी कहना है कि मैं कार्ट से आइटम हटा सकता हूं। इसके लिए कोई उपाय?

धन्यवाद

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.