FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
php-openapi/src/spec/Components.php at master · php-openapi/php-openapi · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
php-openapi
/
php-openapi
Public
forked from
cebe/php-openapi
Notifications
You must be signed in to change notification settings
Fork
0
Star
5
Code
Pull requests
0
Discussions
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
php-openapi
/
src
/
spec
/
Components.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
68 lines (63 loc) · 2.46 KB
Breadcrumbs
php-openapi
/
src
/
spec
/
Components.php
Copy path
File metadata and controls
68 lines (63 loc) · 2.46 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
/**
* @copyright Copyright (c) 2018 Carsten Brandt <mail@cebe.cc> and contributors
* @license https://github.com/cebe/php-openapi/blob/master/LICENSE
*/
namespace
cebe
\
openapi
\
spec
;
use
cebe
\
openapi
\
SpecBaseObject
;
/**
* Holds a set of reusable objects for different aspects of the OAS.
*
* All objects defined within the components object will have no effect on the API unless they are explicitly referenced
* from properties outside the components object.
*
* @link https://github.com/OAI/OpenAPI-Specification/blob/3.0.2/versions/3.0.2.md#componentsObject
*
* @property Schema[]|Reference[] $schemas
* @property Response[]|Reference[] $responses
* @property Parameter[]|Reference[] $parameters
* @property Example[]|Reference[] $examples
* @property RequestBody[]|Reference[] $requestBodies
* @property Header[]|Reference[] $headers
* @property SecurityScheme[]|Reference[] $securitySchemes
* @property Link[]|Reference[] $links
* @property Callback[]|Reference[] $callbacks
*
*
*/
class
Components
extends
SpecBaseObject
{
/**
* @return array array of attributes available in this object.
*/
protected
function
attributes
():
array
{
return
[
'
schemas
'
=> [Type::
STRING
, Schema::class],
'
responses
'
=> [Type::
STRING
, Response::class],
'
parameters
'
=> [Type::
STRING
, Parameter::class],
'
examples
'
=> [Type::
STRING
, Example::class],
'
requestBodies
'
=> [Type::
STRING
, RequestBody::class],
'
headers
'
=> [Type::
STRING
, Header::class],
'
securitySchemes
'
=> [Type::
STRING
, SecurityScheme::class],
'
links
'
=> [Type::
STRING
, Link::class],
'
callbacks
'
=> [Type::
STRING
, Callback::class],
];
}
/**
* Perform validation on this object, check data against OpenAPI Specification rules.
*/
protected
function
performValidation
()
{
// All the fixed fields declared above are objects that MUST use keys that match the regular expression: ^[a-zA-Z0-9\.\-_]+$.
foreach
(
array_keys
(
$
this
->
attributes
())
as
$
attribute
) {
if
(
is_array
(
$
this
->
$
attribute
)) {
foreach
(
$
this
->
$
attribute
as
$
k
=>
$
v
) {
if
(!
preg_match
(
'
~^[a-zA-Z0-9\.\-_]+$~
'
,
$
k
)) {
$
this
->
addError
(
"
Invalid key '
$
k
' used in Components Object for attribute '
$
attribute
', does not match ^[a-zA-Z0-9\.\-_]+
\$
.
"
);
}
}
}
}
}
}
Back
|
FazBrowse Home
|
New Git URL