I have a web api that runs in a WPF C# application. I have used Owin to implement it. If I send request by using /api prefix then it works as I expected.
http://localhost:8080/api/test/config?no=7
However, I need to remove the /api prefix. If I try the request below it does not work when I tried example code below.
http://localhost:8080/test/config?no=7
Is it possible to remove api word from requests?
Here is my code:
WebApp.Start<Startup>(url: "http://*:8080/");
class Startup
{
Type ValuesControllerType = typeof(TestController);
public void Configuration(IAppBuilder Builder)
{
var Instance = new HttpConfiguration();
Instance.MapHttpAttributeRoutes();
Instance.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{request}",
defaults: new { request = RouteParameter.Optional }
);
Builder.UseWebApi(Instance);
}
}
[RoutePrefix("test")]
public class TestController : ApiController
{
[HttpGet]
[Route("config")]
public string Config(string No)
{
try
{
return No;
}
catch (Exception e)
{
return string.Empty;
}
}
}
I tried the answer in C# web api route for a webservice but did not work.
I get following error:
HTTP Error 503. The service is unavailable.
[RoutePrefix("test")]?