.
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
2026-01-09 10:42:41 +00:00
parent d6cafc67b2
commit 3aadd164f0
17 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,404 @@
{
"openapi": "3.0.0",
"info": {
"title": "REST4i - File Operations Services",
"description": "Enhanced file operations services supporting both IFS and SMB file operations with improved error handling and response formatting.",
"version": "1.0.7-rest4i",
"contact": {
"name": "API Support",
"url": "https://github.com/rest4i"
},
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"servers": [
{
"url": "/rest4i/api"
}
],
"tags": [
{
"name": "File Operations Services",
"description": "Enhanced file operations services supporting both IFS and SMB file operations."
}
],
"paths": {
"/v1/files/list": {
"get": {
"tags": ["File Operations Services"],
"summary": "List directory contents",
"description": "List files and directories at specified path using SMB/CIFS or IFS",
"operationId": "listFiles",
"parameters": [
{
"name": "path",
"in": "query",
"required": true,
"description": "Directory path to list",
"schema": {
"type": "string"
},
"example": "/home/user/documents"
}
],
"responses": {
"200": {
"description": "Directory listing successful",
"content": {
"application/json": {
"example": {
"success": true,
"data": {
"path": "/home/user/documents",
"files": [
{
"name": "report.pdf",
"size": 102400,
"isDirectory": false
},
{
"name": "archive",
"size": 0,
"isDirectory": true
}
]
}
}
}
}
}
}
}
},
"/v1/files/download": {
"get": {
"tags": ["File Operations Services"],
"summary": "Download a file",
"description": "Downloads a file from the specified SMB path.",
"operationId": "downloadFile",
"parameters": [
{
"name": "path",
"in": "query",
"required": true,
"description": "The SMB path to the file",
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "query",
"description": "SMB domain",
"schema": {
"type": "string"
}
},
{
"name": "username",
"in": "query",
"description": "SMB username",
"schema": {
"type": "string"
}
},
{
"name": "password",
"in": "query",
"description": "SMB password",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "File downloaded successfully",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "Bad request - path parameter required",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "File not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}
},
"/v1/files/upload": {
"post": {
"tags": ["File Operations Services"],
"summary": "Upload a file",
"description": "Uploads a file to the specified SMB path.",
"operationId": "uploadFile",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UploadRequest"
}
}
}
},
"responses": {
"200": {
"description": "File uploaded successfully",
"content": {
"application/json": {
"example": {
"success": true,
"message": "File uploaded successfully",
"folder": "/upload/path",
"filename": "document.pdf"
}
}
}
},
"400": {
"description": "Bad request - missing required parameters",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}
},
"/v1/files/zip": {
"get": {
"tags": ["File Operations Services"],
"summary": "Zip directory contents",
"description": "Creates a ZIP archive of all files in the specified directory.",
"operationId": "zipDirectory",
"parameters": [
{
"name": "path",
"in": "query",
"required": true,
"description": "The SMB path to the directory",
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "query",
"description": "SMB domain",
"schema": {
"type": "string"
}
},
{
"name": "username",
"in": "query",
"description": "SMB username",
"schema": {
"type": "string"
}
},
{
"name": "password",
"in": "query",
"description": "SMB password",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Directory zipped successfully",
"content": {
"application/zip": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "Bad request - path parameter required",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Directory not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}
},
"/v1/files/exists": {
"get": {
"tags": ["File Operations Services"],
"summary": "Check if file or directory exists",
"description": "Checks whether a file or directory exists at the specified SMB path.",
"operationId": "checkExists",
"parameters": [
{
"name": "path",
"in": "query",
"required": true,
"description": "The SMB path to check",
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "query",
"description": "SMB domain",
"schema": {
"type": "string"
}
},
{
"name": "username",
"in": "query",
"description": "SMB username",
"schema": {
"type": "string"
}
},
{
"name": "password",
"in": "query",
"description": "SMB password",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Existence check completed",
"content": {
"application/json": {
"example": {
"success": true,
"path": "/path/to/check",
"exists": true
}
}
}
},
"400": {
"description": "Bad request - path parameter required",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"UploadRequest": {
"type": "object",
"properties": {
"folder": {
"type": "string",
"description": "The target folder path for upload"
},
"filename": {
"type": "string",
"description": "The name of the file to upload"
},
"domain": {
"type": "string",
"description": "SMB domain"
},
"username": {
"type": "string",
"description": "SMB username"
},
"password": {
"type": "string",
"description": "SMB password"
},
"fileContent": {
"type": "string",
"format": "byte",
"description": "Base64 encoded file content"
}
},
"required": ["folder", "filename", "fileContent"]
},
"Problem": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": "integer",
"format": "int32"
},
"details": {
"type": "object"
}
}
}
},
"securitySchemes": {
"bearerHttpAuthentication": {
"type": "http",
"description": "Bearer token authentication.",
"scheme": "bearer",
"bearerFormat": "Bearer [token]"
},
"basicHttpAuthentication": {
"type": "http",
"description": "Basic authentication.",
"scheme": "basic"
}
}
}
}