2017-06-27 167 views
3

我今天構建了我的第一個dotnet核心web api,發現了一些我無法解決的問題。我希望有人能看到我做錯了什麼。Dotnet核心Web API版本

下面的代碼按預期工作。

[Route("api/[controller]")] 
public class HelpController : Controller 
{ 
    [HttpGet] 
    public string Get() 
    { 
     return "hello world"; 
    } 
} 

然而,當我嘗試應用版本,我什麼也沒得到。

[ApiVersion("1.0")] 
[Route("api/{version:apiVersion}/[controller]")] 
public class HelpController : Controller 
{ 
    [HttpGet] 
    public string Get() 
    { 
     return "hello world"; 
    } 
} 

public void ConfigureServices(IServiceCollection services) 
{ 
    // Add framework services. 
    services.AddMvc(); 
    services.AddApiVersioning(option => 
    { 
     option.ReportApiVersions = true; 
     option.DefaultApiVersion = new ApiVersion(1, 0); 
     option.AssumeDefaultVersionWhenUnspecified = true; 
    }); 
} 

代碼按照預期編譯,但是我什麼也沒得到。我認爲該網址應該是localhost://.../api/1/help,但這不起作用。它發回404。我試過「1」,「1.0」,「1_0」和「10」。什麼都沒有

我錯過了什麼?

+0

你可以在版本號前添加v,看看它有什麼不同嗎? '[Route(「api/v {version:apiVersion}/[controller]」)]' – Win

回答

1

我想,Microsoft.AspNetCore.Mvc.Versioning包的最新1.1版本有一個變化。

嘗試在Configure方法中添加app.UseApiVersioning();

UPDATE: 在版本1.2.0中,需要刪除app.UseApiVersioning();

+0

是的!謝謝。 –