Program
|
+-- Routing (static Map extenstion)
|
+-- Providers (Azure dependent low-level providers, tested with xUnit)
| |
| +-- BlobProvider (A storage for uploaded and processed images)
| |
| +-- CosmosDBProvider (keep state of enqueued tasks)
| |
| +-- AzureServiceBusPublishProvider (API to send notification about state change)
| |
| +-- AzureServiceBusSubscribeProvider (API to listen for incoming notifications)
|
+-- Services (Platform independent high-level services)
|
+-- ProducerService (Used by Simple Web API to enqueue tasks)
|
+-- ProcessorService (Notified on new task and processes images)
|
+-- ... utility services used by the 2 above ...
GET /1/ping?workload=Workload
- 200 returns "pong"
- 422 returns "workload" is required
GET /1/images?name=Name&size=Size
- 200 queued processing fake file with NullProcessor
POST /1/images
- 200 queued processing uploaded jpg or png file with ImageProcessor
- 422 returns "file" is required
Swagger:
Repo:
URL:
github pipeline (this repo):
Development app configuration: local appsettings.json (not present in repo)
Demo app configuraion: Azure Portal Web App Configuration
Only /1/ping
endpoint is implemented.
repo:
URL (DockerHub)
URL (Azure Container Registry)
Github pipeline (deploys dockers to DockerHub and Azure Container Registry)