Skip to content

Latest commit

 

History

History
75 lines (54 loc) · 2 KB

README.md

File metadata and controls

75 lines (54 loc) · 2 KB

Code overview

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 ...

API summary

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:

Dotnet Core Web App

Repo:

URL:

github pipeline (this repo):

Development app configuration: local appsettings.json (not present in repo)

Demo app configuraion: Azure Portal Web App Configuration

Go Web App (docker)

Only /1/ping endpoint is implemented.

repo:

URL (DockerHub)

URL (Azure Container Registry)

Github pipeline (deploys dockers to DockerHub and Azure Container Registry)