ASP.NET Core MVCで簡単なWeb Apiを構築

3724 ワード

Getting Started


ASP.NET Core MVCフレームワークでは、ASP.NETチームは、Webのさまざまな部分を構築するために必要なスイートセットを提供していますが、簡単なWeb Apiプログラムを作る必要がある場合はどうすればいいのでしょうか.
GitHubでのASP.NET Core MVCソースコードには、Microsoft.AspNetCore.Mvcというパッケージに注目すれば、このパッケージのほかにも含まれています.
  • Microsoft.AspNetCore.Mvc.ApiExplorer
  • Microsoft.AspNetCore.Mvc.Cors
  • Microsoft.AspNetCore.Mvc.DataAnnotations
  • Microsoft.AspNetCore.Mvc.Formatters.Json
  • Microsoft.AspNetCore.Mvc.Localization
  • Microsoft.AspNetCore.Mvc.Razor
  • Microsoft.AspNetCore.Mvc.TagHelpers
  • Microsoft.AspNetCore.Mvc.ViewFeatures
  • Microsoft.Extensions.Caching.Memory
  • Microsoft.Extensions.DependencyInjection
  • NETStandard.Library

  • 通常、Web MVCのWebサイトを作成するときはStartup.csファイルのConfigureServicesメソッドには、次のように追加されます.
    
    services.AddMvc();
    

    以上のコードはMVCのサービスをDIコンテナに注入します.AddMvc()のソースコードを見てみましょう.
    
    public static IMvcBuilder AddMvc(this IServiceCollection services)
    {
        var builder = services.AddMvcCore();
    
        builder.AddApiExplorer();
        builder.AddAuthorization();
    
        AddDefaultFrameworkParts(builder.PartManager);
    
        // Order added affects options setup order
    
        // Default framework order
        builder.AddFormatterMappings();
        builder.AddViews();
        builder.AddRazorViewEngine();
        builder.AddCacheTagHelper();
    
        // +1 order
        builder.AddDataAnnotations(); // +1 order
    
        // +10 order
        builder.AddJsonFormatters();
    
        builder.AddCors();
    
        return new MvcBuilder(builder.Services, builder.PartManager);
    }
    

    シンプルWeb Api


    実際、簡単なWeb Apiプログラムを構築したいなら、ASP.NETチームはすでに私たちのためにこの点を考えているので、私たちが注入したサービスを修正するだけです.
    まず、Microsoft.AspNetCore.Mvcというパッケージを参照する必要はありません.Microsoft.AspNetCore.Mvc.Coreを参照します.Mvc.Coreこのパッケージは、ルーティング、Controller、HttpResultなど、基本的なMVCミドルウェアしか提供されません.他のRazor、Cores、Viewsなどは提供されていません.
    Web Apiアプリケーションでは、多くの場合Jsonによるデータシーケンス化伝送が行われるため、Microsoft.AspNetCore.Mvc.Formatters.Jsonというパケットを追加する必要がある.
    そして、ConfigureServicesで、Mvc CoreミドルウェアとJson Formatterを追加します.
    
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvcCore()
            .AddJsonFormatters();
    }
    

    最後に、あなたのXXXControllerクラスではControllerBaseではなくControllerを継承します.ControllerBaseではViewsのサポートは一切提供されていません.
    
    public class XXXController: ControllerBase
    {
    }
    

    次は最終的なプロジェクトです.jsonが参照するすべてのパッケージ.
    "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.1.0",
          "type": "platform"
        },
        "Microsoft.AspNetCore.Mvc.Core": "1.1.0",
        "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.1.0",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
        "Microsoft.Extensions.Configuration.Json": "1.1.0",
        "Microsoft.Extensions.Configuration.CommandLine": "1.1.0",
        "Microsoft.Extensions.Logging": "1.1.0",
        "Microsoft.Extensions.Logging.Console": "1.1.0",
        "Microsoft.Extensions.Logging.Debug": "1.1.0"
    }

    本住所:http://www.cnblogs.com/savorboard/p/6340451.html作者のブログ:Savorboardは転載を歓迎して、明らかな位置で出典とリンクを出してください