For your requirement then you need to build a Rest API yourself.
API points like:
webapi.xml Code
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route method="POST" url="/V1/devamitbera-systemconfig/systemconfig/">
<service class="Devamitbera\Systemconfig\Api\SystemconfigManagementInterface" method="getSystemconfig"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
<!-- getting all store detail -->
<route method="GET" url="/V1/devamitbera-systemconfig/systemconfiglist">
<service class="Devamitbera\Systemconfig\Api\SystemconfigListManagementInterface" method="getSystemconfig"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
</routes>
Interface Class for getting Single store view.
Devamitbera\Systemconfig\Api\SystemconfigManagementInterface
And code
<?php
namespace Devamitbera\Systemconfig\Api;
interface SystemconfigManagementInterface
{
/**
* GET for getSystemconfig api
* @param string $storeCode
* @param string $path
* @return string[]
*/
public function getSystemconfig($storeCode =null );
}
Interface Class for getting all store view:
Devamitbera\Systemconfig\Api\SystemconfigListManagementInterface
And code
<?php
namespace Devamitbera\Systemconfig\Api;
interface SystemconfigListManagementInterface
{
/**
* GET for getSystemconfig api
* @return string[]
*/
public function getSystemconfig();
}
Model Class for the interface class SystemconfigManagement:
Devamitbera\Systemconfig\Model\SystemconfigManagement
Code:
<?php
namespace Devamitbera\Systemconfig\Model;
class SystemconfigManagement implements \Devamitbera\Systemconfig\Api\SystemconfigManagementInterface
{
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
private $storeManager;
/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
private $scopeConfig;
protected $configPaths = [
'general/store_information/name',
'general/store_information/phone',
'general/store_information/hours',
'general/store_information/country_id',
'general/store_information/region_id',
'general/store_information/postcode',
'general/store_information/city',
'general/store_information/street_line1',
'general/store_information/street_line2',
'general/store_information/merchant_vat_number'
];
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Store\Model\StoreManagerInterface $storeManager
)
{
$this->scopeConfig = $scopeConfig;
$this->storeManager = $storeManager;
}
/**
* {@inheritdoc}
*/
public function getSystemconfig($storeCode = null)
{
if($storeCode === null){
$storeCode = $this->storeManager->getStore()->getCode();
}
$storeConfigFinaData = [];
foreach ($this->configPaths as $configPath) {
$storeConfigFinaData[][$configPath] = $this->scopeConfig
->getValue(
$configPath,
\Magento\Store\Model\ScopeInterface::SCOPE_STORES,
$storeCode
);
}
return $storeConfigFinaData;
}
}
Model Class for the interface class SystemconfigListManagementInterface:
Devamitbera\Systemconfig\Model\SystemconfigListManagement
Code:
<?php
namespace Devamitbera\Systemconfig\Model;
class SystemconfigListManagement implements \Devamitbera\Systemconfig\Api\SystemconfigListManagementInterface
{
/**
* @var \Magento\Store\Model\ResourceModel\Store\CollectionFactory
*/
private $storeCollectionFactory;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
private $storeManager;
/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
private $scopeConfig;
protected $configPaths = [
'general/store_information/name',
'general/store_information/phone',
'general/store_information/hours',
'general/store_information/country_id',
'general/store_information/region_id',
'general/store_information/postcode',
'general/store_information/city',
'general/store_information/street_line1',
'general/store_information/street_line2',
'general/store_information/merchant_vat_number'
];
public function __construct(
\Magento\Store\Model\ResourceModel\Store\CollectionFactory $storeCollectionFactory,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Store\Model\StoreManagerInterface $storeManager
) {
$this->scopeConfig = $scopeConfig;
$this->storeManager = $storeManager;
$this->storeCollectionFactory = $storeCollectionFactory;
}
/**
* {@inheritdoc}
*/
public function getSystemconfig() {
$storeConfigs = [];
$storeCollection = $this->storeCollectionFactory->create();
foreach ($storeCollection->load() as $item) {
$storeConfigs[] = $this->StoreInfomation($item);
}
return $storeConfigs;
}
private function StoreInfomation($store) {
$storeConfigFinaData = [];
$storeConfigFinaData['store_id'] = $store->getId();
$storeConfigFinaData['store_code'] = $store->getCode();
$storeConfigFinaData['website_id'] = $store->getWebsiteId();
foreach ($this->configPaths as $configPath) {
$storeConfigFinaData[$configPath] = $this->scopeConfig
->getValue(
$configPath,
\Magento\Store\Model\ScopeInterface::SCOPE_STORES,
$store->getCode()
);
}
return $storeConfigFinaData;
}
}
di.xml
TEST SAMPLE:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://127.0.0.1/magento23dev/rest/V1/devamitbera-systemconfig/systemconfig/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"storeCode\": \"default\"}",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer gv5dgldyscnzpa8sveg1xfct9frnwy0q",
"Content-Type: application/json",
"Postman-Token: ff714339-e830-4347-8266-e458c58102d9",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
This method support one parameter:
1.$storeCode : Store code
All store Information API Test Sample:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://127.0.0.1/magento23dev/rest/V1/devamitbera-systemconfig/systemconfiglist",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer gv5dgldyscnzpa8sveg1xfct9frnwy0q",
"Content-Type: application/json",
"Postman-Token: d9b495e5-3bc7-4e96-a723-3931b96b70ba",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}