I have an Asp.Net Core Minimal API web app. I want to version an endpoint using request header X-Api-Version
. Depending on the version I want to do different things. Something like this:
app.MapPost("/save", (
[FromHeader(Name = "X-Api-Version")] SaveVersion version, // how to constraint this to v1?
[FromBody] SaveRequestV1 request
) => "Do something");
app.MapPost("/save", ( // this is considered duplicate route
[FromHeader(Name = "X-Api-Version")] SaveVersion version,
[FromBody] SaveRequestV2 request
) => "Do another thing");
public enum SaveVersion
{
v1 = 1,
v2
};
public class SaveRequestV1
{
public string Name { get; set; }
public bool IsMember { get; set; }
}
public class SaveRequestV2
{
public string Name { get; set; }
public int MemberStatus { get; set; }
}
Is it possible to have different route handlers based on request header?
Can Swagger understand this versioning by request header?