Skip to content

Instantly share code, notes, and snippets.

@MelbourneDeveloper
Created June 28, 2022 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MelbourneDeveloper/41702ea0051e9dc99635a987ff0e6e7f to your computer and use it in GitHub Desktop.
Save MelbourneDeveloper/41702ea0051e9dc99635a987ff0e6e7f to your computer and use it in GitHub Desktop.
Protobuf Web API
[HttpGet]
public IActionResult Get()
{
var person = new Person
{
FirstName = "Sam",
BillingAddress = new Address
{
StreeNumber = "100",
Street = "Somewhere",
Suburb = "Sometown"
},
Surname = "Smith"
};
var data = person.ToByteArray();
return File(data, "application/octet-stream");
}
[HttpPut]
public async Task<IActionResult> Put()
{
var stream = Request.BodyReader.AsStream();
var person = Person.Parser.ParseFrom(stream);
if (!Request.Headers.ContainsKey("PersonKey")) throw new Exception("No key");
person.PersonKey = Request.Headers["PersonKey"];
var data = person.ToByteArray();
return File(data, "application/octet-stream");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment