Enhance Tender Search API with Advanced Filtering and Documentation Updates

- Updated the Tender Search API to include additional query parameters for enhanced filtering capabilities, such as currency, deadline ranges, publication dates, languages, and buyer organization ID.
- Changed existing query parameter types from integer to string for better flexibility in search queries.
- Improved Swagger and YAML documentation to reflect the new parameters and their descriptions, ensuring clarity for API consumers.
- Updated handler comments to align with the new query structure, providing comprehensive details for each parameter.
- Enhanced response structures to return a well-defined SearchResponse, improving the overall API usability and documentation consistency.
This commit is contained in:
n.nakhostin
2025-09-08 14:25:02 +03:30
parent 3911180486
commit a76aa16cba
4 changed files with 639 additions and 120 deletions
+221 -36
View File
@@ -5364,21 +5364,51 @@
"summary": "Get public tenders",
"parameters": [
{
"type": "integer",
"description": "Number of items per page (default: 20, max: 50)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to skip (default: 0)",
"name": "offset",
"type": "string",
"description": "Search query for title and description",
"name": "q",
"in": "query"
},
{
"type": "string",
"description": "Filter by country code",
"name": "country_code",
"description": "Filter by notice type code",
"name": "notice_type",
"in": "query"
},
{
"type": "string",
"description": "Filter by procurement type code",
"name": "procurement_type",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by country codes (comma-separated)",
"name": "country_codes",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by status (comma-separated)",
"name": "status",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by source (comma-separated)",
"name": "source",
"in": "query"
},
{
@@ -5394,15 +5424,73 @@
"in": "query"
},
{
"type": "number",
"description": "Publication from",
"name": "publication_from",
"type": "string",
"description": "Filter by currency",
"name": "currency",
"in": "query"
},
{
"type": "number",
"description": "Publication to",
"name": "publication_to",
"description": "Deadline from",
"name": "deadline_from",
"in": "query"
},
{
"type": "number",
"description": "Deadline to",
"name": "deadline_to",
"in": "query"
},
{
"type": "number",
"description": "Publication date from",
"name": "publication_date_from",
"in": "query"
},
{
"type": "number",
"description": "Publication date to",
"name": "publication_date_to",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by languages (comma-separated)",
"name": "languages",
"in": "query"
},
{
"type": "string",
"description": "Filter by buyer organization ID",
"name": "buyer_organization_id",
"in": "query"
},
{
"type": "integer",
"description": "Number of items per page (default: 20, max: 100)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to skip (default: 0)",
"name": "offset",
"in": "query"
},
{
"type": "string",
"description": "Sort by field",
"name": "sort_by",
"in": "query"
},
{
"type": "string",
"description": "Sort order (asc or desc)",
"name": "sort_order",
"in": "query"
}
],
@@ -5418,8 +5506,7 @@
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true
"$ref": "#/definitions/tender.SearchResponse"
}
}
}
@@ -5517,21 +5604,51 @@
"summary": "Get public tenders",
"parameters": [
{
"type": "integer",
"description": "Number of items per page (default: 20, max: 50)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to skip (default: 0)",
"name": "offset",
"type": "string",
"description": "Search query for title and description",
"name": "q",
"in": "query"
},
{
"type": "string",
"description": "Filter by country code",
"name": "country_code",
"description": "Filter by notice type code",
"name": "notice_type",
"in": "query"
},
{
"type": "string",
"description": "Filter by procurement type code",
"name": "procurement_type",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by country codes (comma-separated)",
"name": "country_codes",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by status (comma-separated)",
"name": "status",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by source (comma-separated)",
"name": "source",
"in": "query"
},
{
@@ -5547,15 +5664,73 @@
"in": "query"
},
{
"type": "number",
"description": "Publication from",
"name": "publication_from",
"type": "string",
"description": "Filter by currency",
"name": "currency",
"in": "query"
},
{
"type": "number",
"description": "Publication to",
"name": "publication_to",
"description": "Deadline from",
"name": "deadline_from",
"in": "query"
},
{
"type": "number",
"description": "Deadline to",
"name": "deadline_to",
"in": "query"
},
{
"type": "number",
"description": "Publication date from",
"name": "publication_date_from",
"in": "query"
},
{
"type": "number",
"description": "Publication date to",
"name": "publication_date_to",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Filter by languages (comma-separated)",
"name": "languages",
"in": "query"
},
{
"type": "string",
"description": "Filter by buyer organization ID",
"name": "buyer_organization_id",
"in": "query"
},
{
"type": "integer",
"description": "Number of items per page (default: 20, max: 100)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to skip (default: 0)",
"name": "offset",
"in": "query"
},
{
"type": "string",
"description": "Sort by field",
"name": "sort_by",
"in": "query"
},
{
"type": "string",
"description": "Sort order (asc or desc)",
"name": "sort_order",
"in": "query"
}
],
@@ -5571,8 +5746,7 @@
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true
"$ref": "#/definitions/tender.SearchResponse"
}
}
}
@@ -6503,6 +6677,17 @@
}
}
},
"tender.SearchResponse": {
"type": "object",
"properties": {
"tenders": {
"type": "array",
"items": {
"$ref": "#/definitions/tender.TenderResponse"
}
}
}
},
"tender.TenderResponse": {
"type": "object",
"properties": {