{
"openapi": "3.0.3",
"info": { "title": "sample_apidir_03", "version": "0.0.1" },
"paths": {
"/person/id": {
"summary": "id-of-person",
"post": {
"summary": "id-of-person",
"requestBody": {
"description": "the person record to get the id",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ExVariantPerson" },
"examples": {
"example_0": { "value": { "kind": "anonymous" } },
"example_1": {
"value": { "kind": "with-id", "value": 1619 }
},
"example_2": {
"value": {
"kind": "student",
"studentId": 451,
"name": "Ray Bradbury"
}
},
"example_3": {
"value": {
"kind": "teacher",
"facultyId": 2001,
"name": "Arthur C. Clark",
"department": "Space"
}
}
}
}
},
"required": false
},
"responses": {
"200": {
"description": "The ID of the given person.",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/Int" },
"examples": {
"example_0": { "value": 1619 },
"example_1": { "value": 451 }
}
}
}
},
"4XX": {
"description": "The reason why the ID of the given person is unavailable.",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/String" },
"examples": {
"a sample value with error message": {
"value": "error message like this 1"
},
"another sample value with error message": {
"value": "error message like this 2"
}
}
}
}
}
},
"deprecated": false
}
}
},
"components": {
"schemas": {
"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
}
]
},
"Int": { "title": "Int", "type": "integer" },
"String": { "title": "String", "type": "string" }
}
}
}