Skip to content
This repository was archived by the owner on May 20, 2019. It is now read-only.

Commit c09f916

Browse files
author
Vasiliev.A
committed
Webapi and Swagger module changes for WebapiAsync PoC 0.0.1
1 parent f5b78dc commit c09f916

File tree

4 files changed

+140
-0
lines changed

4 files changed

+140
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Swagger\Block;
7+
8+
use Magento\Framework\View\Element\Template;
9+
10+
/**
11+
* Class Index
12+
*
13+
* @api
14+
*/
15+
class Async extends Template
16+
{
17+
/**
18+
* @return mixed|string
19+
*/
20+
private function getParamStore()
21+
{
22+
return ($this->getRequest()->getParam('store')) ? $this->getRequest()->getParam('store') : 'all';
23+
}
24+
25+
/**
26+
* @return string
27+
*/
28+
public function getSchemaUrl()
29+
{
30+
return rtrim($this->getBaseUrl(), '/') . '/rest/' . $this->getParamStore() . '/async/schema?services=all';
31+
}
32+
33+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
/***
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Swagger\Controller\Async;
7+
8+
/**
9+
* Class Index
10+
* @package Magento\Swagger\Controller\Index
11+
*/
12+
class Index extends \Magento\Framework\App\Action\Action
13+
{
14+
/**
15+
* @var \Magento\Framework\View\Page\Config
16+
*/
17+
private $pageConfig;
18+
19+
/**
20+
* @var \Magento\Framework\View\Result\PageFactory
21+
*/
22+
private $pageFactory;
23+
24+
/**
25+
* @param \Magento\Framework\App\Action\Context $context
26+
* @param \Magento\Framework\View\Page\Config $pageConfig
27+
* @param \Magento\Framework\View\Result\PageFactory $pageFactory
28+
*/
29+
public function __construct(
30+
\Magento\Framework\App\Action\Context $context,
31+
\Magento\Framework\View\Page\Config $pageConfig,
32+
\Magento\Framework\View\Result\PageFactory $pageFactory
33+
) {
34+
parent::__construct($context);
35+
$this->pageConfig = $pageConfig;
36+
$this->pageFactory = $pageFactory;
37+
}
38+
39+
/**
40+
* @return \Magento\Framework\View\Result\Page
41+
*/
42+
public function execute()
43+
{
44+
$this->pageConfig->addBodyClass('swagger-section');
45+
return $this->pageFactory->create();
46+
}
47+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" label="qwerty">
9+
<head>
10+
<title>Swagger UI Async</title>
11+
12+
<!--<title>Swagger UI assets</title>-->
13+
<css src='Magento_Swagger::swagger-ui/css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
14+
<css src='Magento_Swagger::swagger-ui/css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
15+
<css src='Magento_Swagger::swagger-ui/css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
16+
<css src='Magento_Swagger::swagger-ui/css/reset.css' media='print' rel='stylesheet' type='text/css'/>
17+
<css src='Magento_Swagger::swagger-ui/css/print.css' media='print' rel='stylesheet' type='text/css'/>
18+
<link src='Magento_Swagger::swagger-ui/js/lib/jquery-1.8.0.min.js' type='text/javascript'/>
19+
<link src='Magento_Swagger::swagger-ui/js/lib/jquery.slideto.min.js' type='text/javascript'/>
20+
<link src='Magento_Swagger::swagger-ui/js/lib/jquery.wiggle.min.js' type='text/javascript'/>
21+
<link src='Magento_Swagger::swagger-ui/js/lib/jquery.ba-bbq.min.js' type='text/javascript'/>
22+
<link src='Magento_Swagger::swagger-ui/js/lib/handlebars.min-v4.0.10.js' type='text/javascript'/>
23+
<link src='Magento_Swagger::swagger-ui/js/lib/underscore-min.js' type='text/javascript'/>
24+
<link src='Magento_Swagger::swagger-ui/js/lib/backbone-min.js' type='text/javascript'/>
25+
<link src='Magento_Swagger::swagger-ui/js/lib/jsoneditor.min.js' type='text/javascript'/>
26+
<link src='Magento_Swagger::swagger-ui/js/swagger-ui.js' type='text/javascript'/>
27+
<link src='Magento_Swagger::swagger-ui/js/lib/highlight.9.1.0.pack.js' type='text/javascript'/>
28+
<link src='Magento_Swagger::swagger-ui/js/lib/highlight.9.1.0.pack_extended.js' type='text/javascript'/>
29+
<link src='Magento_Swagger::swagger-ui/js/lib/lodash.min.js' type='text/javascript'/>
30+
<link src='Magento_Swagger::swagger-ui/js/lib/object-assign-pollyfill.js' type='text/javascript'/>
31+
<link src='Magento_Swagger::swagger-ui/js/lib/marked.js' type='text/javascript'/>
32+
<link src='Magento_Swagger::swagger-ui/js/lib/swagger-oauth.js' type='text/javascript'/>
33+
<link src='Magento_Swagger::swagger-ui/js/lang/translator.js' type='text/javascript'/>
34+
<link src='Magento_Swagger::swagger-ui/js/lang/ru.js' type='text/javascript'/>
35+
<link src='Magento_Swagger::swagger-ui/js/lang/en.js' type='text/javascript'/>
36+
<link src='Magento_Swagger::swagger-ui/js/magento-swagger.js' type='text/javascript'/>
37+
38+
<!--Remove require-js assets-->
39+
<remove src="requirejs/require.js"/>
40+
<remove src="mage/requirejs/mixins.js"/>
41+
<remove src="requirejs-config.js"/>
42+
</head>
43+
<body>
44+
<!--Remove Magento page content-->
45+
<referenceContainer name="page.wrapper" remove="true"/>
46+
<referenceBlock name="requirejs-config" remove="true"/>
47+
<referenceContainer name="root">
48+
<block name="swaggerUiContent" class="Magento\Swagger\Block\Async" template="Magento_Swagger::swagger-ui/index.phtml"/>
49+
</referenceContainer>
50+
</body>
51+
</page>
52+

app/code/Magento/Webapi/Controller/Rest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@
2929
*/
3030
class Rest implements \Magento\Framework\App\FrontControllerInterface
3131
{
32+
/**
33+
* Path for accessing REST API schema
34+
* @todo need to change logic in \Magento\Webapi\Model\Rest\Swagger\Generator::generateSchema()
35+
* $swagger->setBasePath(strstr($endpointUrl, Rest::SCHEMA_PATH, true));
36+
* to using by di.xml config
37+
*/
38+
const SCHEMA_PATH = '/schema';
39+
3240
/**
3341
* @var Router
3442
* @deprecated 100.1.0

0 commit comments

Comments
 (0)