Asp.NetCoreWebApi入門 - 從零開始新建api項目


圖文說明,注意流量.

開發環境

  • Visual Studio 2019
  • .net core 2.x

打開VS,建立項目



建好之后就像下面這樣

繼續再建立兩個.net core類庫項目分別是 ApiStudy.CoreApiStudy.Infrastructure

  • 右擊解決方案,新建項目.
  • 選擇 .NetCore類庫項目.
  • 輸入項目名.
  • ApiStudy.Core項目建立完成
  • 同樣的方法再建立ApiStudy.Infrastructrue 項目.
  • 完成之后如圖
  • 然后設置依賴關系

項目結構

一個解決方案下三個項目:

  • Xxxx.Core
    放一些核心的東西,比如 Entity(實體) 類和一些接口
  • Xxxx.Infrastructure
    放一些數據庫連接之類(DbContext)的和一些服務
  • Xxxx.Api
    客戶端項目

修改 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類的代碼

image
配置使用的 Startup
webBuilder.UseStartup(Assembly.GetExecutingAssembly().GetName().FullName);

netcore會根據這里配置的環境是來選擇使用哪個Startup類
image

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM