| { |
| "openapi": "3.0.0", |
| "components": { |
| "examples": {}, |
| "headers": {}, |
| "parameters": {}, |
| "requestBodies": {}, |
| "responses": {}, |
| "schemas": { |
| "Genre": { |
| "enum": [ |
| "Fiction", |
| "Non-Fiction", |
| "Mystery", |
| "Sci-Fi", |
| "Fantasy", |
| "Biography", |
| "History", |
| "Romance", |
| "Thriller", |
| "Horror", |
| "Poetry", |
| "Drama", |
| "Comics", |
| "Other" |
| ], |
| "type": "string" |
| }, |
| "BookStatus": { |
| "enum": [ |
| "available", |
| "borrowed" |
| ], |
| "type": "string" |
| }, |
| "Book": { |
| "properties": { |
| "id": { |
| "type": "string" |
| }, |
| "title": { |
| "type": "string" |
| }, |
| "author": { |
| "type": "string" |
| }, |
| "pages": { |
| "type": "number", |
| "format": "double" |
| }, |
| "year": { |
| "type": "number", |
| "format": "double" |
| }, |
| "genre": { |
| "$ref": "#/components/schemas/Genre" |
| }, |
| "status": { |
| "$ref": "#/components/schemas/BookStatus" |
| } |
| }, |
| "required": [ |
| "id", |
| "title", |
| "author", |
| "pages", |
| "year", |
| "genre", |
| "status" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Pick_Visitor.Exclude_keyofVisitor.currentBooks-or-history__": { |
| "properties": { |
| "id": { |
| "type": "string" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "registrationDate": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "id", |
| "name", |
| "surname", |
| "registrationDate" |
| ], |
| "type": "object", |
| "description": "From T, pick a set of properties whose keys are in the union K" |
| }, |
| "VisitorWithBooks": { |
| "properties": { |
| "id": { |
| "type": "string" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "registrationDate": { |
| "type": "string" |
| }, |
| "currentBooks": { |
| "items": { |
| "$ref": "#/components/schemas/Book" |
| }, |
| "type": "array" |
| }, |
| "history": { |
| "items": { |
| "$ref": "#/components/schemas/Book" |
| }, |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "id", |
| "name", |
| "surname", |
| "registrationDate", |
| "currentBooks", |
| "history" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ErrorResponse": { |
| "properties": { |
| "message": { |
| "type": "string" |
| }, |
| "code": { |
| "type": "string" |
| }, |
| "statusCode": { |
| "type": "number", |
| "format": "double" |
| } |
| }, |
| "required": [ |
| "message" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_VisitorWithBooks-Array_": { |
| "properties": { |
| "data": { |
| "items": { |
| "$ref": "#/components/schemas/VisitorWithBooks" |
| }, |
| "type": "array" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_VisitorWithBooks_": { |
| "properties": { |
| "data": { |
| "$ref": "#/components/schemas/VisitorWithBooks" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Link": { |
| "properties": { |
| "table": { |
| "type": "string" |
| }, |
| "id": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "table", |
| "id" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Visitor": { |
| "properties": { |
| "id": { |
| "type": "string" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "registrationDate": { |
| "type": "string" |
| }, |
| "currentBooks": { |
| "items": { |
| "$ref": "#/components/schemas/Link" |
| }, |
| "type": "array" |
| }, |
| "history": { |
| "items": { |
| "$ref": "#/components/schemas/Link" |
| }, |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "id", |
| "name", |
| "surname", |
| "registrationDate", |
| "currentBooks", |
| "history" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_Visitor_": { |
| "properties": { |
| "data": { |
| "$ref": "#/components/schemas/Visitor" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "CreateVisitorRequest": { |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "registrationDate": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "name", |
| "surname", |
| "registrationDate" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Partial_CreateVisitorRequest_": { |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "registrationDate": { |
| "type": "string" |
| } |
| }, |
| "type": "object", |
| "description": "Make all properties in T optional" |
| }, |
| "ApiResponse_void_": { |
| "properties": { |
| "data": {}, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "DayOfWeek": { |
| "enum": [ |
| "monday", |
| "tuesday", |
| "wednesday", |
| "thursday", |
| "friday", |
| "saturday", |
| "sunday" |
| ], |
| "type": "string" |
| }, |
| "Employee": { |
| "properties": { |
| "id": { |
| "type": "string" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "experience": { |
| "type": "number", |
| "format": "double" |
| }, |
| "workDays": { |
| "items": { |
| "$ref": "#/components/schemas/DayOfWeek" |
| }, |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "id", |
| "name", |
| "surname", |
| "experience", |
| "workDays" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_Employee-Array_": { |
| "properties": { |
| "data": { |
| "items": { |
| "$ref": "#/components/schemas/Employee" |
| }, |
| "type": "array" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_Employee_": { |
| "properties": { |
| "data": { |
| "$ref": "#/components/schemas/Employee" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "CreateEmployeeRequest": { |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "experience": { |
| "type": "number", |
| "format": "double" |
| }, |
| "workDays": { |
| "items": { |
| "$ref": "#/components/schemas/DayOfWeek" |
| }, |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "name", |
| "surname", |
| "experience", |
| "workDays" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Partial_CreateEmployeeRequest_": { |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "surname": { |
| "type": "string" |
| }, |
| "experience": { |
| "type": "number", |
| "format": "double" |
| }, |
| "workDays": { |
| "items": { |
| "$ref": "#/components/schemas/DayOfWeek" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object", |
| "description": "Make all properties in T optional" |
| }, |
| "ApiResponse_Book-Array_": { |
| "properties": { |
| "data": { |
| "items": { |
| "$ref": "#/components/schemas/Book" |
| }, |
| "type": "array" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ApiResponse_Book_": { |
| "properties": { |
| "data": { |
| "$ref": "#/components/schemas/Book" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "CreateBookRequest": { |
| "properties": { |
| "title": { |
| "type": "string" |
| }, |
| "author": { |
| "type": "string" |
| }, |
| "pages": { |
| "type": "number", |
| "format": "double" |
| }, |
| "year": { |
| "type": "number", |
| "format": "double" |
| }, |
| "genre": { |
| "$ref": "#/components/schemas/Genre" |
| } |
| }, |
| "required": [ |
| "title", |
| "author", |
| "pages", |
| "year", |
| "genre" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "Partial_CreateBookRequest_": { |
| "properties": { |
| "title": { |
| "type": "string" |
| }, |
| "author": { |
| "type": "string" |
| }, |
| "pages": { |
| "type": "number", |
| "format": "double" |
| }, |
| "year": { |
| "type": "number", |
| "format": "double" |
| }, |
| "genre": { |
| "$ref": "#/components/schemas/Genre" |
| } |
| }, |
| "type": "object", |
| "description": "Make all properties in T optional" |
| }, |
| "ApiResponse__message-string__": { |
| "properties": { |
| "data": { |
| "properties": { |
| "message": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "message" |
| ], |
| "type": "object" |
| }, |
| "successful": { |
| "type": "boolean" |
| }, |
| "error": { |
| "$ref": "#/components/schemas/ErrorResponse" |
| } |
| }, |
| "required": [ |
| "successful" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "BorrowBookRequest": { |
| "properties": { |
| "bookIds": { |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| }, |
| "visitorId": { |
| "type": "string" |
| }, |
| "employeeId": { |
| "type": "string" |
| }, |
| "borrowDate": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "bookIds", |
| "visitorId", |
| "employeeId", |
| "borrowDate" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| }, |
| "ReturnBookRequest": { |
| "properties": { |
| "bookIds": { |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| }, |
| "visitorId": { |
| "type": "string" |
| }, |
| "employeeId": { |
| "type": "string" |
| }, |
| "returnDate": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "bookIds", |
| "visitorId", |
| "employeeId", |
| "returnDate" |
| ], |
| "type": "object", |
| "additionalProperties": false |
| } |
| }, |
| "securitySchemes": {} |
| }, |
| "info": { |
| "title": "lab4", |
| "version": "1.0.0", |
| "license": { |
| "name": "ISC" |
| }, |
| "contact": {} |
| }, |
| "paths": { |
| "/visitors": { |
| "get": { |
| "operationId": "GetVisitors", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_VisitorWithBooks-Array_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [] |
| }, |
| "post": { |
| "operationId": "AddVisitor", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Visitor_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/CreateVisitorRequest" |
| } |
| } |
| } |
| } |
| } |
| }, |
| "/visitors/{id}": { |
| "get": { |
| "operationId": "GetVisitor", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_VisitorWithBooks_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| }, |
| "patch": { |
| "operationId": "UpdateVisitor", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_VisitorWithBooks_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Partial_CreateVisitorRequest_" |
| } |
| } |
| } |
| } |
| }, |
| "delete": { |
| "operationId": "DeleteVisitor", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_void_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/visitors/{id}/download": { |
| "get": { |
| "operationId": "DownloadVisitor", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "type": "string" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Visitors" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/employees": { |
| "get": { |
| "operationId": "GetEmployees", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Employee-Array_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [] |
| }, |
| "post": { |
| "operationId": "AddEmployee", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Employee_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/CreateEmployeeRequest" |
| } |
| } |
| } |
| } |
| } |
| }, |
| "/employees/{id}": { |
| "get": { |
| "operationId": "GetEmployee", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Employee_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| }, |
| "patch": { |
| "operationId": "UpdateEmployee", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Employee_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Partial_CreateEmployeeRequest_" |
| } |
| } |
| } |
| } |
| }, |
| "delete": { |
| "operationId": "DeleteEmployee", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_void_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/employees/{id}/download": { |
| "get": { |
| "operationId": "DownloadEmployee", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "type": "string" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Employees" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/books": { |
| "get": { |
| "operationId": "GetBooks", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Book-Array_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [] |
| }, |
| "post": { |
| "operationId": "AddBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Book_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/CreateBookRequest" |
| } |
| } |
| } |
| } |
| } |
| }, |
| "/books/{id}": { |
| "get": { |
| "operationId": "GetBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Book_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| }, |
| "patch": { |
| "operationId": "UpdateBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse_Book_" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Partial_CreateBookRequest_" |
| } |
| } |
| } |
| } |
| }, |
| "delete": { |
| "operationId": "DeleteBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse__message-string__" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/books/{id}/download": { |
| "get": { |
| "operationId": "DownloadBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "type": "string" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [ |
| { |
| "in": "path", |
| "name": "id", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ] |
| } |
| }, |
| "/books/borrow": { |
| "post": { |
| "operationId": "BorrowBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse__message-string__" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/BorrowBookRequest" |
| } |
| } |
| } |
| } |
| } |
| }, |
| "/books/return": { |
| "post": { |
| "operationId": "ReturnBook", |
| "responses": { |
| "200": { |
| "description": "Ok", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ApiResponse__message-string__" |
| } |
| } |
| } |
| } |
| }, |
| "tags": [ |
| "Books" |
| ], |
| "security": [], |
| "parameters": [], |
| "requestBody": { |
| "required": true, |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/ReturnBookRequest" |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| "servers": [ |
| { |
| "url": "/api" |
| } |
| ] |
| } |