using Microsoft.AspNetCore.Mvc; using ProtoBuf; using System.IO; namespace TCC.Controllers { [ApiController] [Route("simulation")] public class SimulationController : ControllerBase { public SimulationController() { } [HttpGet("harmonic-progression")] public async Task GetHarmonicProgression([FromQuery] int n) { double sum = 0; for (int i = 1; i <= n; i++) { sum += 1.0f / i; } return Ok(sum); } [HttpGet("json")] public async Task GetJsonResponse() { return Ok(new { message = "Hello World!" }); } [HttpPost("protobuf")] public async Task PostProtobuf() { HelloWorld cliente; byte[] response; using (var stream = Request.BodyReader.AsStream()) { cliente = ProtoBuf.Serializer.Deserialize(stream); } using (var stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, cliente); response = stream.ToArray(); } await Response.Body.WriteAsync(response, 0, response.Length); return new EmptyResult(); } } [ProtoContract()] public class HelloWorld { [ProtoMember(1)] public string Message { get; set; } } }