0

I have created custom API with required parameters as:

<route url="/V1/lorimcode/request/:reference/:amount" method="POST">
    <service class="Vendor\Module\Api\GiftCardRequestManagementInterface" method="request"/>
    <resources>
        <resource ref="self"/>
    </resources>
    <data>
        <parameter name="customerId" force="true">%customer_id%</parameter>
    </data>
</route>

and it is seen in Magento Default Swagger as: enter image description here

I also have some optional parameters, how to show optional parameters in swagger UI ?

Update:

It is done in core for API: catalogProductRenderListV1 enter image description here

Interface is:

interface ProductRenderListInterface
{
    /**
     * Collect and retrieve the list of product render info.
     *
     * This info contains raw prices and formatted prices, product name, stock status, store_id, etc.
     *
     * @see \Magento\Catalog\Api\Data\ProductRenderInfoDtoInterface
     *
     * @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
     * @param int $storeId
     * @param string $currencyCode
     * @return \Magento\Catalog\Api\Data\ProductRenderSearchResultsInterface
     * @since 102.0.0
     */
    public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria, $storeId, $currencyCode);
}

Where SearchCriteriaInterface is:

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Magento\Framework\Api;

/**
 * Search criteria interface.
 *
 * @api
 * @since 100.0.2
 */
interface SearchCriteriaInterface
{
    /**
     * Get a list of filter groups.
     *
     * @return \Magento\Framework\Api\Search\FilterGroup[]
     */
    public function getFilterGroups();

    /**
     * Set a list of filter groups.
     *
     * @param \Magento\Framework\Api\Search\FilterGroup[] $filterGroups
     * @return $this
     */
    public function setFilterGroups(array $filterGroups = null);

    /**
     * Get sort order.
     *
     * @return \Magento\Framework\Api\SortOrder[]|null
     */
    public function getSortOrders();

    /**
     * Set sort order.
     *
     * @param \Magento\Framework\Api\SortOrder[] $sortOrders
     * @return $this
     */
    public function setSortOrders(array $sortOrders = null);

    /**
     * Get page size.
     *
     * @return int|null
     */
    public function getPageSize();

    /**
     * Set page size.
     *
     * @param int $pageSize
     * @return $this
     */
    public function setPageSize($pageSize);

    /**
     * Get current page.
     *
     * @return int|null
     */
    public function getCurrentPage();

    /**
     * Set current page.
     *
     * @param int $currentPage
     * @return $this
     */
    public function setCurrentPage($currentPage);
}

Can somebody figure it how? I am still looking to do it in custom module

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.