summaryrefslogtreecommitdiff
path: root/src/StardewModdingAPI.Web/Startup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/StardewModdingAPI.Web/Startup.cs')
-rw-r--r--src/StardewModdingAPI.Web/Startup.cs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/StardewModdingAPI.Web/Startup.cs b/src/StardewModdingAPI.Web/Startup.cs
index fbe2bd92..b668c63e 100644
--- a/src/StardewModdingAPI.Web/Startup.cs
+++ b/src/StardewModdingAPI.Web/Startup.cs
@@ -60,7 +60,22 @@ namespace StardewModdingAPI.Web
loggerFactory.AddDebug();
app
.UseRewriter(new RewriteOptions().Add(new RewriteSubdomainRule())) // convert subdomain.smapi.io => smapi.io/subdomain for routing
- .UseMvc();
+ .UseMvc(route =>
+ {
+ route.MapRoute(
+ name: "API",
+ template: "api/{version}/{controller}/{action?}",
+ defaults: new
+ {
+ action = "GetAsync"
+ },
+ constraints: new
+ {
+ // version regex from SMAPI's SemanticVersion implementation
+ version = @"^v(?>(?<major>0|[1-9]\d*))\.(?>(?<minor>0|[1-9]\d*))(?>(?:\.(?<patch>0|[1-9]\d*))?)(?:-(?<prerelease>(?>[a-z0-9]+[\-\.]?)+))?$"
+ }
+ );
+ });
}
}
}