Improved parameter validation
Change-Id: If2e7ec1b063a6e114a6c5582463af784b75c37b8
diff --git a/tools/metadata.go b/tools/metadata.go
index c3da813..46eb221 100644
--- a/tools/metadata.go
+++ b/tools/metadata.go
@@ -42,16 +42,22 @@
"properties": map[string]interface{}{
"action": map[string]interface{}{
"type": "string",
- "description": "Type of metadata to retrieve: 'list' for corpus list, 'statistics' for corpus statistics",
+ "description": "Type of metadata operation to perform. 'list' retrieves all available corpora with their basic information, 'statistics' provides detailed corpus statistics.",
"enum": []string{"list", "statistics"},
"default": "list",
+ "examples": []string{"list", "statistics"},
},
"corpus": map[string]interface{}{
"type": "string",
- "description": "Virtual corpus query to filter results (optional, when not provided refers to all data available to the user)",
+ "description": "Virtual corpus query to filter results based on metadata fields. For 'list' action, this parameter is ignored. For 'statistics' action, specifies which subset of data to analyze using metadata queries with boolean operations (& | !), comparison operators (= != < > in), and regular expressions (/pattern/). When not provided with 'statistics', returns statistics for all accessible data.",
+ "pattern": "^[a-zA-Z0-9._\\-\\s&|!=<>()/*\"']+$",
+ "examples": []string{"corpusSigle = \"GOE\"", "textClass = \"politics\" & pubDate in 2020", "textType = \"news\" | textType = \"blog\"", "availability = /CC.*/ & textClass != \"fiction\""},
},
},
- "required": []string{"action"},
+ "required": []string{"action"},
+ "additionalProperties": false,
+ "title": "KorAP Metadata Parameters",
+ "description": "Parameters for retrieving corpus metadata and statistics from KorAP, including corpus lists and detailed statistical information.",
}
}