SampleArtifacts/apis/demo-conference-api/specification.yaml (262 lines of code) (raw):
openapi: 3.0.1
info:
title: Demo Conference API
description: 'A sample API with information related to a technical conference. The available resources include *Speakers*, *Sessions* and *Topics*. A single write operation is available to provide feedback on a session.'
version: '1.0'
servers:
- url: https://api.waelsconsulting.com
- url: https://portal.waelsconsulting.com
paths:
/sessions:
get:
summary: GetSessions
description: A list of sessions. Optional parameters work as filters to reduce the listed sessions.
operationId: GetSessions
parameters:
- name: speakername
in: query
style: form
schema:
type: string
- name: dayno
in: query
description: Format - int32.
style: form
schema:
type: integer
- name: keyword
in: query
style: form
schema:
type: string
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/session/{id}':
get:
summary: GetSession
description: Retreive a representation of a single session by Id
operationId: GetSession
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/hal+json: { }
text/plain: { }
'/session/{id}/topics':
get:
summary: GetSessionTopics
description: A list of topics covered by a particular session
operationId: GetSessionTopics
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/session/{id}/feedback':
post:
summary: SubmitSession
description: Retreive a representation of a single session by Id
operationId: SubmitSession
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
requestBody:
content:
text/plain:
schema:
$ref: '#/components/schemas/Body'
example: ''
responses:
'200':
description: OK
content:
application/hal+json: { }
text/plain: { }
/speakers:
get:
summary: GetSpeakers
description: GetSpeakers
operationId: GetSpeakers
parameters:
- name: dayno
in: query
description: Format - int32.
style: form
schema:
type: integer
- name: speakername
in: query
style: form
schema:
type: string
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/speaker/{id}':
get:
summary: GetSpeaker
description: GetSpeaker
operationId: GetSpeaker
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.hal+json: { }
text/plain: { }
'/speaker/{id}/sessions':
get:
summary: GetSpeakerSessions
description: GetSpeakerSessions
operationId: GetSpeakerSessions
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/speaker/{id}/topics':
get:
summary: GetSpeakerTopics
description: GetSpeakerTopics
operationId: GetSpeakerTopics
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
/topics:
get:
summary: GetTopics
description: GetTopics
operationId: GetTopics
parameters:
- name: dayno
in: query
description: Format - int32.
style: form
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/topic/{id}':
get:
summary: GetTopic
description: GetTopic
operationId: GetTopic
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/hal+json: { }
'/topic/{id}/speakers':
get:
summary: GetTopicSpeakers
description: GetTopicSpeakers
operationId: GetTopicSpeakers
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
'/topic/{id}/sessions':
get:
summary: GetTopicSessions
description: GetTopicSessions
operationId: GetTopicSessions
parameters:
- name: id
in: path
description: Format - int32.
required: true
style: simple
schema:
type: integer
responses:
'200':
description: OK
content:
application/vnd.collection+json: { }
components:
schemas:
Body:
type: string
securitySchemes:
apiKeyHeader:
type: apiKey
name: Ocp-Apim-Subscription-Key
in: header
apiKeyQuery:
type: apiKey
name: subscription-key
in: query
security:
- apiKeyHeader: [ ]
- apiKeyQuery: [ ]