Generted swagger.json is missing securityscheme component. When I copy the url json and paste it in swagger editor, I get - enter image description here
The generated yaml in swagger.json file is like below -
openapi: 3.0.3
info:
title: Test YAML
version: 1.0.0
servers:
- url: 'localhost'
description: Inferred Url
tags:
- name: device-controller
description: the device API
- name: api-controller
description: API
paths:
/api/device:
get:
tags:
- ABCD
summary: Device SUMMARY.
description: Device DESCRIPTION.
operationId: getDevice
parameters:
- name: X-Request-ID
in: header
description: 'request Id, will return in the response headers, and appear in logs'
required: false
schema:
type: string
responses:
'200':
description: list of commands set
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CommandSet'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- BasicAuth: []
components:
schemas:
CommandSet:
title: CommandSet
required:
- name
type: object
properties:
id:
type: string
format: uuid
example: 07da6fd8-5abc-4dc4-bcec-df309d123d17
name:
type: string
example: Deny
Error:
title: Error
type: object
properties:
code:
type: string
example: '400'
message:
type: string
example: Bad Request
it is missing
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic
I have defined under resource folder the following yaml file
openapi: 3.0.2
info:
title: Policy APIs
description: 'Policy APIs for manage Policy Sets, authorization policies, authentication policies, and policy elements.'
version: 1.0.0
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
contact:
email: [email protected]
servers:
- url: 'https://{server}/v1/policy'
variables:
server:
default: localhost
description: The host where the API is rooted
security:
- BasicAuth: []
paths:
/device-admin/command-sets:
parameters:
- $ref: '#/components/parameters/XRequestIdHeader'
get:
summary: Device Admin - Return list of command sets.
description: Device Admin - Return list of command sets.
operationId: getDeviceAdminCommandSets
tags:
- Device Administration - Command Set
responses:
'200':
description: list of commands set
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CommandSet'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic
parameters:
XRequestIdHeader:
in: header
name: X-Request-ID
description: 'request Id, will return in the response headers, and appear in logs'
schema:
type: string
required: false
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example: '{code: 404, message: The specified resource was not found}'
schemas:
CommandSet:
type: object
required:
- name
properties:
name:
type: string
example: DenyAllCommands
description: Command used in Device Admin authorization policies
id:
type: string
format: uuid
example: 07da6fd8-5abc-4dc4-bcec-df309dbf4d17
Error:
type: object
properties:
code:
type: string
example: 400
message:
type: string
example: Bad Request
How to get the securityscheme component in the swagger url definition. I am using oas 3.x and openapi generator tool to generate the java code.