Magento2: изменение ответа API по умолчанию

Я использую API Magento2 по умолчанию /V1/carts/mine/payment-information.

Ответ от этого API

{
    "payment_methods": [
        {
            "code": "payu",
            "title": "PayUMoney"
        },
        {
            "code": "checkmo",
            "title": "Check / Money order"
        },
        {
            "code": "paytm",
            "title": "Paytm PG"
        }
    ],
    "totals": {
        "grand_total": 195,
        "base_grand_total": 195,
        "subtotal": 45,
        "base_subtotal": 45,
        "discount_amount": 0,
        "base_discount_amount": 0,
        "subtotal_with_discount": 45,
        "base_subtotal_with_discount": 45,
        "shipping_amount": 150,
        "base_shipping_amount": 150,
        "shipping_discount_amount": 0,
        "base_shipping_discount_amount": 0,
        "tax_amount": 0,
        "base_tax_amount": 0,
        "weee_tax_applied_amount": null,
        "shipping_tax_amount": 0,
        "base_shipping_tax_amount": 0,
        "subtotal_incl_tax": 45,
        "shipping_incl_tax": 150,
        "base_shipping_incl_tax": 150,
        "base_currency_code": "INR",
        "quote_currency_code": "INR",
        "items_qty": 1,
        "items": [
            {
                "item_id": 41,
                "price": 45,
                "base_price": 45,
                "qty": 1,
                "row_total": 45,
                "base_row_total": 45,
                "row_total_with_discount": 0,
                "tax_amount": 0,
                "base_tax_amount": 0,
                "tax_percent": 0,
                "discount_amount": 0,
                "base_discount_amount": 0,
                "discount_percent": 0,
                "price_incl_tax": 45,
                "base_price_incl_tax": 45,
                "row_total_incl_tax": 45,
                "base_row_total_incl_tax": 45,
                "options": "[{\"value\":\"Green\",\"label\":\"Color\"},{\"value\":\"29\",\"label\":\"Size\"}]",
                "weee_tax_applied_amount": null,
                "weee_tax_applied": null,
                "name": "Erika Running Short"
            }
        ],
        "total_segments": [
            {
                "code": "subtotal",
                "title": "Subtotal",
                "value": 45
            },
            {
                "code": "shipping",
                "title": "Shipping & Handling (Fixed)",
                "value": 150
            },
            {
                "code": "tax",
                "title": "Tax",
                "value": 0,
                "extension_attributes": {
                    "tax_grandtotal_details": []
                }
            },
            {
                "code": "grand_total",
                "title": "Grand Total",
                "value": 195,
                "area": "footer"
            }
        ]
    } 
}

Хотите добавить тег images внутри элементов для отображения изображений предметов/продуктов. Но этот тег не определен в интерфейсе элементов, т.е.

TotalsItemInterface.php

Я воспроизвел TotalsItemInterface в своем пользовательском модуле и добавил все геттеры и сеттеры из Totalsinterface вместе с тегами setImages и getImages. Таким образом, внутри я вызываю метод для использования и показываю его с помощью моих пользовательских APIInterfaces.

Есть ли лучший или правильный способ Magento2, если мы хотим изменить данные, отображаемые в API?


person Rohit Rai    schedule 25.02.2018    source источник


Ответы (1)


Вы можете использовать для этого атрибуты расширения. Вы можете найти больше информации о них в devdocs: https://devdocs.magento.com/guides/v2.3/extension-dev-guide/extension_attributes/adding-attributes.html

person Nikita Abrashnev    schedule 03.12.2018