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 / products /:skuを使用して製品を作成できますか?
Patrik Lundgren、

作成操作にはPostを、更新操作にはPutを使用する必要があります。ドキュメントはdockblockから自動生成されます。これがputとpostに同じ説明がある理由です
KAndy

1

このページを見る:http : //devdocs.magento.com/guides/m1x/api/rest/Resources/Products/products.html#RESTAPI-Resource-Products-HTTPMethod-PUT-products--id

私はPUTについて見ることができます:

説明:既存の製品を更新できます。


magento 1.xのドキュメントです
KAndy

申し訳ありませんが、これはMagento 2に関するものであり、そのページはv1に関するものでした。
Patrik Lundgren、2016年

そして、KAndyがすでにこれを指摘していることを読んでいないことを残念に思う:-) stackexchangeに関しては、私は完全な初心者です
Patrik Lundgren

1
まあ、magentoのメジャーバージョンに関係なく、残りのAPIは同じバージョンですよね。したがって、これを指摘することにはいくつかの用途があります。
2017

1

私にも同様の問題がありますが、私の場合、PUTが正しく機能しません。

1)カートのすべての製品を見つける:

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

(クライアントcartIdを見つける方法はまだわかりません)番号を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と同じです)。カートからアイテムを削除することもできます。これに対する解決策はありますか?

ありがとうございました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.