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: [ ]