GET :http://www.Example.com/Api/1/0/Book/Company/0
[Route(\"{UserId}/{Category}/books/{BookType}/{Page}\")]
[HttpGet]
[RequestAuthorization]
It takes the parameters as they are you cannot do this. I would suggest try changing routeConfig.
Add a new route. in WebApiConfig.cs
.
config.Routes.MapHttpRoute(
name: "NewApiRoute",
routeTemplate: "myapi/{Controller}/{id}",
defaults: new { id = new object()//this is to make it generic you can pass object of your class also }
);