Je suis novice en matière de développement d'API et je souhaite créer un point final d'API Web qui recevra une grande quantité de données de journalisation. Et je veux envoyer ces données à Seau Amazon s3 via Flux de livraison Amazon Kinesis . Vous trouverez ci-dessous un exemple d'application qui fonctionne ENFIN, Mais je n'ai AUCUNE idée de la manière d'INGESTER de grandes quantités de données entrantes et du format dans lequel mon API doit recevoir les données. ? A quoi doit ressembler mon point de terminaison API ?
[HttpPost]
public async void Post() // HOW to allow it to receive large chunk of data?
{
await WriteToStream();
}
private async Task WriteToStream()
{
const string myStreamName = "test";
Console.Error.WriteLine("Putting records in stream : " + myStreamName);
// Write 10 UTF-8 encoded records to the stream.
for (int j = 0; j < 10000; ++j)
{
// I AM HARDCODING DATA HERE FROM THE LOOP COUNTER!!!
byte[] dataAsBytes = Encoding.UTF8.GetBytes("testdata-" + j);
using (MemoryStream memoryStream = new MemoryStream(dataAsBytes))
{
PutRecordRequest putRecord = new PutRecordRequest();
putRecord.DeliveryStreamName = myStreamName;
Record record = new Record();
record.Data = memoryStream;
putRecord.Record = record;
await kinesisClient.PutRecordAsync(putRecord);
}
}
}
P.S. : Dans une application réelle, je n'aurai pas cette boucle. Je veux que mon API ingère de grandes données, quelle devrait être la définition de mon API ? Dois-je utiliser quelque chose appelé multiformes/données , fichier ? Merci de me guider.