Here is my thought process. As you are exposing a API for the logging, your input should contain below attributes
- Log Level (info, debug, warn, fatal)
- Log message (string)
- Application ID
- Application Instance ID
- application IP
- Host (machine in which the error was logged)
- User ID (for whom the error occurred)
- Time stamp in Utc (time at which the error occurred)
- Additional Data (customisable as xml / json)
I will suggest exposing the API as AWS lambda via Gateway API as it will help in scaling out as load increases.
To take sample for how to build API and use model binding, you may refer https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api
manpreet
Best Answer
2 years ago
I am new to API development and I want to create a Web API end point which will be receiving a large amount of log data. And I want to send that data to Amazon s3 bucket via Amazon Kinesis delivery stream. Below is a sample application which works FINE, but I have NO CLUE how to INGEST large inbound of data and in What format my API should be receiving data? How my API Endpoint should look like.
P.S: IN real world app I will not have that for loop. I want my API to ingest large data, what should be the definition of my API? Do I need to use something called multiform/data, file? Please guide me.