2017-06-27 12 views
3

今日私の最初のdotnet core web apiを構築し、解決できないものが見つかりました。私は誰かが私が間違っていることを見ることができることを望んでいます。Dotnet Core 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; 
    }); 
} 

コードは期待どおりにコンパイルされますが、何も得られません。私は、URLはlocalhost://.../api/1/helpでなければならないと思うが、うまくいかない。私は "1"、 "1.0"、 "1_0"、 "10"を試しました。何も動作しません。

私には何が欠けていますか?

+0

バージョン番号の前にvを追加して、別のものを確認できますか? '[Route(" api/v {バージョン:apiVersion}/[コントローラ] ")]' – Win

答えて

1

Microsoft.AspNetCore.Mvc.Versioningパッケージの最新1.1バージョンに変更があると思います。

Configureメソッドにapp.UseApiVersioning();を追加してみてください。

更新: バージョン1.2.0では、app.UseApiVersioning();の必要性が削除されました。

+0

はい!ありがとうございました。 –

関連する問題