Skip to content

Given a new green field project, the requirements are that are two different payloads, A and B that need to be exposed to our customers via the internet. An audit log is also required for every request that is received. Given this has to be done quickly and cheaply to prove some value. How would you go about designing this system?

License

erossini/SimpleApi

Repository files navigation

SimpleApi

Given a new green field project, the requirements are that are two different payloads, A and B that need to be exposed to our customers via the internet. An audit log is also required for every request that is received. Given this has to be done quickly and cheaply to prove some value. How would you go about designing this system?

The solution is split in 4 different implementation:

  • Logic App Classic (LogicAppClassic)
  • Logic App (New version 2021) (azuks-mcp-vaq-log-d1)
  • Azure Function (SimpleAzureFunction)
  • WebApi
    • Domain (SimpleApi.Domain)†
    • Persistence (SimpleApi.Persistence and SimpleApi.Persistence.Interface)
    • Api (SimpleApi and SimpleApi.App)

† Domain is a .NET Standard project to be used in the WebApi project and in the Azure Function

Solution in Visual Studio

Architecture and security

The nature of the project and the deploy environment impact on the architecture. In the projects you have different approaches. Logic Apps are build in Azure and the basic security is to use a key in the URL. However, it is possible to put in front of them an Azure API Manager that provides a security layer and integration with Azure Active Directory and OpenId (such as IdentityServer4).

The Domain project has only the model across the solution and, for this reason, is build with .NET Standard. This project is used as dependencies in the Azure Function and the API.

WebApi

The project is divided into the following layers:

  • Domain
  • Infrastructure
  • Persistence
  • Specs/Tests

Architecture for Logic Apps

LogicApps

Basic architecture

Basic

Screenshot

Azure Function

Azure Function output

Swagger for the WebApi

image

Logic App Classic

LogicApp Classic Screenshot from Azure portal

Logic App in Visual Studio

LogicApp in VisualStudio 2019

About

Given a new green field project, the requirements are that are two different payloads, A and B that need to be exposed to our customers via the internet. An audit log is also required for every request that is received. Given this has to be done quickly and cheaply to prove some value. How would you go about designing this system?

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published