图文说明,注意流量.

开发环境

  • 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类的代码



配置使用的 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

Asp.NetCoreWebApi入门 - 从零开始新建api项目的更多相关文章

  1. SpringBoot入门,新建SpringBoot项目

    一.在Spring Initializr中创建初始化项目 https://start.spring.io/ 二.通过maven导入Idea中(解压后的项目) 解压文件 黄色的为项目需要的真正的代码 , ...

  2. ASP.NET MVC 4新建库项目中找不到 System.Web.Security 的引用

    .NET 4中,WebSecurity的引用已经不再System.Web中,而是转移到了System.Web.ApplicationServices Dll中,添加该Dll即可.

  3. 在Windows下编写并运行第一个ASP.NET 5 Preview Web API程序

    2015年07月21日在微软中国MSDN的官方微博上得知Visual Studio 2015正式版完美发布. 抱着尝鲜的心态下载了Visual Studio社区版本. 在这个首发的版本里面,我们可以看 ...

  4. 新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World!

    一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World! 一节,新建一个项目:    二.添加引用并修改配置为 Web API (.NET Core 已将 MVC/W ...

  5. 22、ASP.NET MVC入门到精通——搭建项目框架

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 前面的章节,说了ASP.NET MVC项目中常用的一些技术和知识点,更多的是理论上面的东西,接下来,我将通过一个简单的OA项目来应用我们之前 ...

  6. ASP.NET Core WebAPI 开发-新建WebAPI项目 转

    转 http://www.cnblogs.com/linezero/p/5497472.html ASP.NET Core WebAPI 开发-新建WebAPI项目   ASP.NET Core We ...

  7. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  8. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  9. 如何创建一个Asp .Net Web Api项目

    1.点击文件=>新建=>项目 2.创建一个Asp .NET Web项目 3.选择Empty,然后选中下面的MVC和Web Api,也可以直接选择Web Api选项,注意将身份验证设置为无身 ...

随机推荐

  1. Linux 信号量之Posix有名字的信号量

    信号量(semaphore),也和互斥锁一样提供了线程间或者进程间的同步功能. 信号量有三种: Posix有名字的信号量 Posix基于内存的信号量 System V信号量 信号量比互斥锁高级,互斥锁 ...

  2. STM32F4 串口IAP程序要点

    1. IAP(bootloader)程序 1.1 内部Flash地址分配 /* Start of the Flash address */ #define STM32_FLASH_BASE 0x080 ...

  3. mysql数据库之忘记root密码

    1.  vi /etc/my.cnf,在[mysqld]中添加 skip-grant-tables 例如: [mysqld] skip-grant-tables datadir=/var/lib/my ...

  4. 第一个java小程序

    程序名:MyFirstJavaProgram.java //package com.example; public class MyFirstJavaProgram { public static v ...

  5. LeetCode 669. Trim a Binary Search Tree修剪二叉搜索树 (C++)

    题目: Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so th ...

  6. 集合 List ,Set

    https://www.cnblogs.com/jmsjh/p/7740123.html

  7. Bootstrap-table 单元格合并 、表头合并

    1.页面引入js/css @*1.Jquery组件引用*@ <script src="~/Scripts/jquery-1.10.2.js"></script&g ...

  8. [LeetCode] 281. The Skyline Problem 天际线问题

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  9. 第02组 Alpha冲刺(4/6)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 摸鱼 提交记录(全组共用) 接下来的计划 沟通前后端成员,监督.提醒他们尽快完成各自的进度 学习如何评估代码质量 准备Al ...

  10. java web开发入门七(mybatis)基于intellig idea

    mybatis 一. 入门开发步骤 1.导入相关jar包 mybatis3.4.2核心开发包 asm-5.1.jarcglib-3.2.4.jarcommons-logging-1.1.3.jarlo ...