This commit is contained in:
404
scalar/apidocs/files.json
Normal file
404
scalar/apidocs/files.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user