https://github.com/erossini/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?
https://github.com/erossini/simpleapi
aspnet-core aspnet-web-api azure azure-functions logicapps webapi-core
Last synced: 3 months ago
JSON representation
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?
- Host: GitHub
- URL: https://github.com/erossini/simpleapi
- Owner: erossini
- License: gpl-3.0
- Created: 2021-07-28T22:37:56.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-07-29T10:16:35.000Z (almost 4 years ago)
- Last Synced: 2025-01-12T10:07:12.003Z (5 months ago)
- Topics: aspnet-core, aspnet-web-api, azure, azure-functions, logicapps, webapi-core
- Language: C#
- Homepage:
- Size: 50.8 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# 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

## 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
### Basic architecture
## Screenshot
### Azure Function
### Swagger for the WebApi
### Logic App Classic
### Logic App in Visual Studio
