Skip to content

Commit ebff100

Browse files
committed
Adjust language openapi data
1 parent dd6c9d0 commit ebff100

File tree

4 files changed

+82
-32
lines changed

4 files changed

+82
-32
lines changed

src/bundle/Resources/api_platform/base.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ schemas:
33
type: object
44
required:
55
- _media-type
6-
- _href
76
properties:
87
_media-type:
8+
xml:
9+
attribute: true
910
type: string
1011
_href:
12+
xml:
13+
attribute: true
1114
type: string

src/bundle/Resources/api_platform/language_schemas.yml

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@ schemas:
22
Language:
33
allOf:
44
- ref: "#/components/schemas/BaseObject"
5-
- type: object
6-
description: This class represents a language in the Repository.
5+
- description: This class represents a language in the Repository.
6+
type: object
77
required:
8-
- id
8+
- languageId
99
- languageCode
1010
- name
11-
- enabled
1211
properties:
13-
id:
12+
languageId:
1413
description: The language ID (auto generated).
1514
type: integer
1615
languageCode:
@@ -19,11 +18,29 @@ schemas:
1918
name:
2019
description: Human readable name of the language.
2120
type: string
22-
enabled:
23-
description: Indicates if the language is enabled or not.
24-
type: boolean
21+
LanguageWrapper:
22+
type: object
23+
required:
24+
- Language
25+
properties:
26+
Language:
27+
$ref: "#/components/schemas/Language"
2528
LanguageList:
26-
description: List of languages.
27-
type: array
28-
items:
29-
$ref: "#/components/schemas/Language"
29+
allOf:
30+
- ref: "#/components/schemas/BaseObject"
31+
- description: List of languages.
32+
type: object
33+
required:
34+
- Language
35+
properties:
36+
Language:
37+
type: array
38+
items:
39+
$ref: "#/components/schemas/Language"
40+
LanguageListWrapper:
41+
type: object
42+
required:
43+
- LanguageList
44+
properties:
45+
LanguageList:
46+
$ref: "#/components/schemas/LanguageList"

src/bundle/Resources/config/api_platform.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,3 @@ services:
4242
$files:
4343
- '@@IbexaRestBundle/Resources/api_platform/base.yml'
4444
- '@@IbexaRestBundle/Resources/api_platform/language_schemas.yml'
45-

src/lib/Server/Controller/Language.php

Lines changed: 49 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,27 @@
2020
#[Get(
2121
uriTemplate: '/languages',
2222
openapi: new Model\Operation(
23+
extensionProperties: [
24+
'x-visib' => '555'
25+
],
2326
tags: [
2427
'Language attr on Controller',
2528
],
29+
parameters: [
30+
new Model\Parameter(
31+
name: 'Accept',
32+
description: 'If set, the list is returned in XML or JSON format.',
33+
required: true,
34+
in: 'header',
35+
schema: [
36+
'description' => 'If set, the list is returned in XML or JSON format.',
37+
'example' => 'application/vnd.ibexa.api.LanguageList+xml
38+
application/vnd.ibexa.api.LanguageList+json
39+
',
40+
'type' => 'string',
41+
],
42+
),
43+
],
2644
responses: [
2745
Response::HTTP_OK => [
2846
'content' => [
@@ -48,7 +66,7 @@
4866
],
4967
'application/vnd.ibexa.api.LanguageList+json' => [
5068
'schema' => [
51-
'$ref' => '#/components/schemas/LanguageList',
69+
'$ref' => '#/components/schemas/LanguageListWrapper',
5270
],
5371
'example' => [
5472
'LanguageList' => [
@@ -87,6 +105,29 @@
87105
tags: [
88106
'Language attr on Controller',
89107
],
108+
parameters: [
109+
new Model\Parameter(
110+
name: 'code',
111+
in: 'path',
112+
required: true,
113+
schema: [
114+
'type' => 'string',
115+
],
116+
),
117+
new Model\Parameter(
118+
name: 'Accept',
119+
description: 'If set, the language is returned in XML or JSON format.',
120+
required: true,
121+
in: 'header',
122+
schema: [
123+
'description' => 'If set, the language is returned in XML or JSON format.',
124+
'example' => 'application/vnd.ibexa.api.Language+xml
125+
application/vnd.ibexa.api.Language+json
126+
',
127+
'type' => 'string',
128+
],
129+
),
130+
],
90131
responses: [
91132
Response::HTTP_OK => [
92133
'content' => [
@@ -95,17 +136,17 @@
95136
'$ref' => '#/components/schemas/Language',
96137
],
97138
'example' => <<<XML
98-
<?xml version="1.0" encoding="UTF-8"?>
99-
<Language media-type="application/vnd.ibexa.api.Language+xml" href="/api/ibexa/v2/languages/eng-GB">
100-
<languageId>2</languageId>
101-
<languageCode>eng-GB</languageCode>
102-
<name>English (United Kingdom)</name>
103-
</Language>
139+
<?xml version="1.0" encoding="UTF-8"?>
140+
<Language media-type="application/vnd.ibexa.api.Language+xml" href="/api/ibexa/v2/languages/eng-GB">
141+
<languageId>2</languageId>
142+
<languageCode>eng-GB</languageCode>
143+
<name>English (United Kingdom)</name>
144+
</Language>
104145
XML
105146
],
106147
'application/vnd.ibexa.api.Language+json' => [
107148
'schema' => [
108-
'$ref' => '#/components/schemas/Language',
149+
'$ref' => '#/components/schemas/LanguageWrapper',
109150
],
110151
'example' => [
111152
'Language' => [
@@ -121,16 +162,6 @@
121162
],
122163
],
123164
summary: 'Get language',
124-
parameters: [
125-
new Model\Parameter(
126-
name: 'code',
127-
in: 'path',
128-
required: true,
129-
schema: [
130-
'type' => 'string',
131-
],
132-
),
133-
],
134165
),
135166
name: 'languages_code',
136167
)]

0 commit comments

Comments
 (0)