{ "openapi": "3.0.3", "info": { "title": "sample_apidir_01", "version": "0.0.1" }, "paths": { "/student/any-one": { "summary": "get-any-student", "get": { "summary": "get-any-student", "responses": { "default": { "description": "a student record (could be anyone) in the database", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExRecordStudent" }, "examples": { "example_0": { "value": { "admissionYear": 1984, "name": "William Gibson" } } } } } } }, "deprecated": false } }, "/student/from-person": { "summary": "get-student-from-person", "post": { "summary": "get-student-from-person", "requestBody": { "description": "a person record identifying a student", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExVariantPerson" }, "examples": { "example_0": { "value": { "kind": "student", "studentId": 451, "name": "Ray Bradbury" } } } } }, "required": false }, "responses": { "default": { "description": "the student record corresponding to the supplied person", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExRecordStudent" }, "examples": { "example_0": { "value": { "admissionYear": 451, "name": "Ray Bradbury" } } } } } } }, "deprecated": false } } }, "components": { "schemas": { "ExRecordStudent": { "title": "ExRecordStudent", "type": "object", "properties": { "admissionYear": { "type": "integer" }, "name": { "type": "string" } }, "required": ["admissionYear", "name"], "additionalProperties": false }, "ExVariantPerson": { "title": "ExVariantPerson", "oneOf": [ { "title": "anonymous", "type": "object", "properties": { "kind": { "enum": ["anonymous"], "type": "string" } }, "required": ["kind"], "additionalProperties": false }, { "title": "with-id", "type": "object", "properties": { "value": { "type": "integer" }, "kind": { "enum": ["with-id"], "type": "string" } }, "required": ["value", "kind"], "additionalProperties": false }, { "title": "student", "type": "object", "properties": { "studentId": { "type": "integer" }, "name": { "type": "string" }, "kind": { "enum": ["student"], "type": "string" } }, "required": ["studentId", "name", "kind"], "additionalProperties": false }, { "title": "teacher", "type": "object", "properties": { "facultyId": { "type": "integer" }, "name": { "type": "string" }, "department": { "type": "string" }, "kind": { "enum": ["teacher"], "type": "string" } }, "required": ["facultyId", "name", "department", "kind"], "additionalProperties": false } ] } } } }