{ "openapi": "3.0.1", "info": { "title": "arzt-direkt", "version": "1.0.0" }, "paths": { "/api/landing/online-doctors": { "get": { "summary": "Load active doctors", "description": "Query number doctors that are ready for new patients", "parameters": [ { "in": "path", "name": "identifier", "type": "string", "required": true, "description": "Identifier of instance from https://arzt-direkt.com/{identifier}", "example": "hautpraxis-jena" } ], "responses": { "200": { "description": "Number of active Kassen- and Privatärzten ('ka', and 'pa' respectively)", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "integer", "default": 200 }, "onlineDoctors": { "type": "object", "example": { "ka": 0, "pa": 2 } } } } } } }, "400": { "$ref": "#/components/responses/IncorrectDataError" }, "404": { "$ref": "#/components/responses/NotFoundError" } } } }, "/api/landing/planned-availability": { "get": { "summary": "Load planned doctor-availability", "description": "Load planned doctor-availability for each day for each arzt-type.", "parameters": [ { "in": "path", "name": "identifier", "type": "string", "required": true, "description": "Identifier of instance from https://arzt-direkt.com/{identifier}", "example": "hautpraxis-jena" } ], "responses": { "200": { "description": "Planned doctor-availability of Kassen- and Privatärzten ('ka', and 'pa' respectively as well as an accumulated 'sum')", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "integer", "default": 200 }, "plannedAvailability": { "type": "object", "example": { "ka": { "monday": "13:00-14:00", "tuesday": "", "wednesday": "9:00-10:00,12:00-13:00", "...": null }, "pa": { "...": null }, "sum": { "...": null } } } } } } } }, "400": { "$ref": "#/components/responses/IncorrectDataError" }, "404": { "$ref": "#/components/responses/NotFoundError" }, "500": { "$ref": "#/components/responses/DatabaseError" } } } }, "responses": { "IncorrectDataError": { "description": "Incorrect request parameters", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "status": { "type": "integer", "default": 400 } } } } } }, "UnauthorizedError": { "description": "User is not authorized to access this resource", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "status": { "type": "integer", "default": 401 } } } } } }, "ForbiddenError": { "description": "User is forbidden from accessing the resource", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "integer", "default": 403 }, "error": { "description": "Error message", "type": "string", "example": "Forbidden!" } } } } } }, "DatabaseError": { "description": "Error while communicating with database", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "default": "Fehler bei der Kommunikation mit der Datenbank" }, "status": { "type": "integer", "default": 500 }, "error": { "type": "string" } } } } } }, "NotFoundError": { "description": "Requested object could not be found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "status": { "type": "integer", "default": 404 } } } } } } } } }