Asp.NetCoreWebApi入门 - 从零开始新建api项目

时间:2019-10-14 10:57:09   收藏:0   阅读:498

图文说明,注意流量.

开发环境

打开VS,建立项目

技术图片
技术图片
建好之后就像下面这样
技术图片

继续再建立两个.net core类库项目分别是 ApiStudy.CoreApiStudy.Infrastructure

项目结构

一个解决方案下三个项目:

修改 StartUp 类代码

namespace ApiStudy.api
{
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.DependencyInjection;

    public class Startup
    {
        public IConfiguration Configuration { get; }

        public StartupDevelopment(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseDeveloperExceptionPage();

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

注意, services.AddControllers();endpoints.MapControllers(); 方法成对出现, 这是.net core3.0中的最新写法

ConfigureServices方法

用来向容器中注册服务,注册好的服务可以在其他地方进行调用.

Configure方法

用来配置中间件管道,即如何响应http请求.
技术图片

为开发环境和生产环境配置不同的 Startup

Startup 类修改为 StartupDevelopment

新建 StartupProduction


StartupProduction

namespace MyBlog
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;

    public class StartupProduction
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();

            app.UseHttpsRedirection();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

修改 Program类的代码

技术图片
配置使用的 Startup
webBuilder.UseStartup(Assembly.GetExecutingAssembly().GetName().FullName);

netcore会根据这里配置的环境是来选择使用哪个Startup类
技术图片

Development -> StartupDevelopment
Production -> StartupProduction

新建一个Controller

技术图片
代码如下:

namespace ApiStudy.Api.Controllers
{
    using Microsoft.AspNetCore.Mvc;

    [Route("api/[controller]")]
    [ApiController]
    public class UserController:Controller
    {
        public IActionResult Get()
        {
            return Ok("Hello");
        }
    }
}

修改lauchSetting.json, 删除iis有关的部分, 如下:

{
  "profiles": {
    "ApiStudy.api": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

F5运行

浏览器访问 https://localhost:5001/api/user

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!