{ "openapi": "3.0.3", "info": { "title": "Arbeitszeitmessung - OpenAPI 3.0", "description": "This demos the API for the Arbeitszeitmessung Project ", "version": "0.1.0" }, "externalDocs": { "description": "Git-Repository", "url": "https://git.letsstein.de/tom/arbeitszeitmessung" }, "servers": [ { "url": "http://localhost:8000" } ], "tags": [ { "name": "booking", "description": "all Bookings" } ], "paths": { "/time": { "put": { "tags": [ "booking" ], "summary": "Update a existing booking", "description": "Update an existing booking by Id", "operationId": "updateBooking", "parameters": [ { "name": "bookingID", "in": "query", "description": "Booking ID to update", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Update an existent booking in the db. Not all values have to be updated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Booking" } } }, "required": true }, "responses": { "200": { "description": "Booking Updated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Booking" } } } }, "400": { "description": "Invalid ID supplied" }, "500": { "description": "Server Error" } } }, "get": { "tags": [ "booking" ], "summary": "Gets all the bookings limited", "description": "Returns all the bookings optionally filtered with cardID", "parameters": [ { "name": "cardID", "in": "query", "description": "CardID to filter for", "required": false, "schema": { "type": "string" } } ], "operationId": "addPet", "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Booking" } } } } }, "400": { "description": "Invalid cardID" } } } }, "/time/new": { "put": { "tags": [ "booking" ], "summary": "Create new Booking", "description": "Creates a new booking with the supplied parameters", "operationId": "createBooking", "parameters": [ { "name": "cardID", "in": "query", "description": "id of the RFID card scanned", "required": true, "schema": { "type": "string" } }, { "name": "readerID", "in": "query", "description": "id of the RFID reader scanning the card", "required": true, "schema": { "type": "string" } }, { "name": "bookingType", "in": "query", "description": "booking Type", "required": true, "schema": { "type": "integer", "enum": [ 1, 2, 255 ] } } ], "responses": { "200": { "description": "successfully created booking", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Booking" } } } }, "409": { "description": "Same booking type as last booking" } } } } }, "components": { "schemas": { "Booking": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "example": 100 }, "cardID": { "type": "string", "example": "test_card" }, "readerID": { "type": "string", "example": "test_reader" }, "bookingType": { "type": "integer", "example": 1, "enum": [ 1, 2, 255 ] }, "loggedTime": { "type": "string", "format": "date-time", "example": "2024-09-05T08:51:12.670Z" } }, "xml": { "name": "booking" } } } } }