feat: swagger ui
This commit is contained in:
parent
926e495a44
commit
a5eb1d859b
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\controllers;
|
||||||
|
|
||||||
|
class OpenApiController extends \yii\web\Controller
|
||||||
|
{
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
return $this->render('index');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/** @var yii\web\View $this */
|
||||||
|
|
||||||
|
$this->title = 'OpenAPI spec';
|
||||||
|
$this->registerJsFile('//unpkg.com/swagger-ui-dist/swagger-ui-bundle.js');
|
||||||
|
$this->registerCssFile('//unpkg.com/swagger-ui-dist/swagger-ui.css');
|
||||||
|
|
||||||
|
$loader = <<< JS
|
||||||
|
const ui = SwaggerUIBundle({
|
||||||
|
url: '/openapi.yml',
|
||||||
|
dom_id: '#swagger-ui'
|
||||||
|
});
|
||||||
|
JS;
|
||||||
|
$this->registerJs($loader, \yii\web\View::POS_END);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<noscript>You need to enable JS to load Swagger UI</noscript>
|
||||||
|
<div id="swagger-ui"></div>
|
|
@ -0,0 +1,87 @@
|
||||||
|
info:
|
||||||
|
title: Parameters API
|
||||||
|
version: '1.0'
|
||||||
|
openapi: '3.1.0'
|
||||||
|
tags:
|
||||||
|
- name: Routes
|
||||||
|
paths:
|
||||||
|
/api/list:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- Routes
|
||||||
|
summary: Get all parameters
|
||||||
|
description: Get all parameters
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Parameter'
|
||||||
|
example: [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"title": "A thing happening somewhere",
|
||||||
|
"type": 1,
|
||||||
|
"icons": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "The fox jumping over a cat",
|
||||||
|
"type": 1,
|
||||||
|
"icons": {
|
||||||
|
"icon": {
|
||||||
|
"original_name": "fox_jump.jpeg",
|
||||||
|
"url": "/images/SHA256_HASH.jpeg",
|
||||||
|
"sha256": "SHA256"
|
||||||
|
},
|
||||||
|
"icon_gray": {
|
||||||
|
"original_name": "fox_jump.gray.jpeg",
|
||||||
|
"url": "/images/SHA256_HASH.jpeg",
|
||||||
|
"sha256": "SHA256"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
Image:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
source_name:
|
||||||
|
type: string
|
||||||
|
example: "source_file.jpeg"
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
example: "/images/SHA256_HASH.jpeg"
|
||||||
|
sha256:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- source_name
|
||||||
|
- url
|
||||||
|
- example
|
||||||
|
Parameter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: number
|
||||||
|
example: 0
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
example: 'A quick brown fox jumping over a lazy cat'
|
||||||
|
type:
|
||||||
|
type: number
|
||||||
|
example: 0
|
||||||
|
icons:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
icon:
|
||||||
|
$ref: '#/components/schemas/Image'
|
||||||
|
icon_gray:
|
||||||
|
$ref: '#/components/schemas/Image'
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- title
|
||||||
|
- type
|
Loading…
Reference in New Issue