Files
baya-monorepo/dev/contracts/openapi/swagger.v1.json
T
hamid 765cc632d5 backend phase 0: foundation, cross-cutting seams & starter cleanup
Remove the Order demo (entity/feature/repo/config/gRPC/proto) and the three
pre-marketplace migrations; regenerate a fresh InitialBaseline migration.

Stand up the REST surface (PingController + System/Ping CQRS) proving the
Mediator -> behaviors -> OperationResult -> ApiResult envelope end to end.

Close wiring gaps: register LoggingBehavior (outermost) and add the built-in
rate limiter (per-IP global + otp/auth/sensitive policies), placed before
authentication.

Add current-user + audit plumbing: ICurrentUser (HttpContext + null impls),
rename BaseEntity audit fields to CreatedAt/ModifiedAt (DateTimeOffset) +
CreatedById/ModifiedById, stamped by a new AuditFieldInterceptor.

Introduce five cross-cutting seams (IDateTimeProvider, IFieldEncryptor,
ICacheService, IObjectStorage, INotificationDispatcher) with in-memory/local
mocks registered via AddCrossCuttingSeams.

Add Baya.Test.Foundation (encryptor, audit interceptor, ping handler) and
update docs, contracts (swagger.v1.json), handoff, report, and mocks registry.
2026-06-30 22:48:41 +03:30

256 lines
6.0 KiB
JSON

{
"x-generator": "NSwag v14.7.1.0 (NJsonSchema v11.6.1.0 (Newtonsoft.Json v13.0.0.0))",
"openapi": "3.0.0",
"info": {
"title": "Clean Architecture OpenAPI docs",
"version": "v1"
},
"servers": [
{
"url": "http://127.0.0.1:5082"
}
],
"paths": {
"/api/v1/ping/get_status": {
"get": {
"tags": [
"Ping"
],
"operationId": "Ping_GetStatus",
"responses": {
"400": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResultOfDictionaryOfStringAndListOfString"
}
}
}
},
"401": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"403": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResultOfPingQueryResult"
}
}
}
}
}
}
},
"/api/v1/ping/get_status_rate_limited": {
"get": {
"tags": [
"Ping"
],
"operationId": "Ping_GetStatusRateLimited",
"responses": {
"400": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResultOfDictionaryOfStringAndListOfString"
}
}
}
},
"401": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"403": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResult"
}
}
}
},
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResultOfPingQueryResult"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ApiResultOfDictionaryOfStringAndListOfString": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResult"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "object",
"nullable": true,
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
},
"ApiResult": {
"type": "object",
"additionalProperties": false,
"properties": {
"isSuccess": {
"type": "boolean"
},
"statusCode": {
"$ref": "#/components/schemas/ApiResultStatusCode"
},
"message": {
"type": "string",
"nullable": true
},
"requestId": {
"type": "string",
"nullable": true
}
}
},
"ApiResultStatusCode": {
"type": "integer",
"description": "",
"x-enumNames": [
"Success",
"BadRequest",
"UnAuthorized",
"Forbidden",
"NotFound",
"NotAcceptable",
"EntityProcessError",
"FailedDependency",
"ServerError"
],
"enum": [
200,
400,
401,
403,
404,
406,
422,
424,
500
]
},
"ApiResultOfPingQueryResult": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResult"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/PingQueryResult"
}
]
}
}
}
]
},
"PingQueryResult": {
"type": "object",
"additionalProperties": false,
"properties": {
"service": {
"type": "string",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
},
"serverTimeUtc": {
"type": "string",
"format": "date-time"
}
}
}
},
"securitySchemes": {
"Bearer": {
"type": "http",
"description": "Enter JWT Token ONLY",
"name": "Authorization",
"in": "header",
"scheme": "Bearer"
}
}
}
}