NET Core & VS Code 之路(2) Web API

开发Core项目的条件

看到VS包的体积,以及不想往下走了.

幸亏,ms出了VS Code,可开发.NET Core项目.实际上记事本也能写Core代码,但是开发是需要调试的.

所以本系列将持续用VS Code开发.以代码为主,关键点会加以注释

由于公司事比较多,一直没来得及更新

目录

Web API

  • dotnet new 添加Core项目
  • project.json添加依赖
    • "Microsoft.AspNetCore.Server.Kestrel"

    • "Microsoft.AspNetCore.Mvc"

  • 添加Startup.cs
  • 添加ValuesController.cs
  • 修改Program.cs

project.json 添加的依赖

1
2
3
4
"dependencies": {
    "Microsoft.AspNetCore.Server.Kestrel""1.0.0"//webhost
    "Microsoft.AspNetCore.Mvc""1.0.0" //webapi mvc
}

  

添加的Startup.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
 
public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.UseMvc();//使用MVC管道
    }
 
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();//MVC加入到DI容器中
    }
}

添加的ValuesController.cs

1
2
3
4
5
6
7
8
9
10
11
using Microsoft.AspNetCore.Mvc;
 
public class ValuesController
{
    [HttpGet("/values/{name}")]//name参数注入
    public string Index(string name)
    {
        return "Hello World:" + name;
 
    }
}

修改的Program.cs

1
2
3
4
5
6
7
8
9
public static void Main(string[] args)
{
    new WebHostBuilder()
      .UseKestrel()
      .UseStartup<Startup>()
      .UseUrls("http://localhost:8899""http://localhost:9988/")//同时监听2个端口
      .Build()
      .Run();
}

MVC

在.NET Core中,MVC和Web API实际上走的同一个管道

本例子会在上面的Web API基础上修改

  • 添加和修改project.json

    • Microsoft.AspNetCore.Razor.Tools
  • 添加HomeController
  • 添加Index.cshtml
  • 修改Program.cs

MVC中因为有razor动态编译,所以不仅仅添加1个依赖即可

project.json修改的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
"buildOptions": {
    "debugType""portable",
    "emitEntryPoint"true,
    "preserveCompilationContext"true //动态编译
},
"dependencies": {
    "Microsoft.AspNetCore.Server.Kestrel""1.0.0"//webhost
    "Microsoft.AspNetCore.Mvc""1.0.0"//webapi mvc
    "Microsoft.AspNetCore.Razor.Tools": { //mvc razor
        "version""1.0.0-preview2-final",
        "type""build"
    }
},

添加的HomeController.cs

注意:需要继承Controller类

1
2
3
4
5
6
7
8
9
10
11
using Microsoft.AspNetCore.Mvc;
 
public class HomeController : Controller
{
    [HttpGet("/{name}")]
    public IActionResult Index(string name)
    {
        ViewBag.Name = "Hello " + name;
        return View();
    }
}

  

添加Index.cshtml

目录结构和之前方式(ASP.NET MVC)一样

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>@ViewBag.Name</h1>
</body>
</html>

修改Program.cs

1
2
3
4
5
6
7
8
9
10
public static void Main(string[] args)
{
    new WebHostBuilder()
        .UseKestrel()
        .UseStartup<Startup>()
        .UseContentRoot(Directory.GetCurrentDirectory()) //mvc views需要
        .UseUrls("http://localhost:8899""http://localhost:9988/")//同时监听2个端口
        .Build()
        .Run();
}

静态文件

  • 添加依赖:project.json

    • Microsoft.AspNetCore.StaticFiles
  • 注册管道:Startup.cs
  • 添加静态文件:wwwroot

project.json

1
2
3
4
5
6
7
8
9
"dependencies": { //nuget包
    "Microsoft.AspNetCore.Mvc""1.0.0"//webapi mvc
    "Microsoft.AspNetCore.Server.Kestrel""1.0.0"//webhost
    "Microsoft.AspNetCore.Razor.Tools": { //mvc razor
        "version""1.0.0-preview2-final",
        "type""build"
    },
    "Microsoft.AspNetCore.StaticFiles""1.0.0"//静态文件
},

注册管道

1
2
3
4
5
public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles();//需要在mvc前 否则将优先被mvc路由匹配执行
    app.UseMvc();
}

添加静态文件

静态文件默认是以wwwroot文件夹为根目录

注意:

  • 添加依赖后,需要Restore后才能使用该库
  • 本节由于篇幅问题,去除了配置文件的大量说明
  • 本文地址:http://www.cnblogs.com/neverc/p/5801210.html

NET Core & VS Code 之路(2) Web API的更多相关文章

  1. [Core] .NET Core & VS Code 之路(2) Web API

    开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 2015 Tooling Preview 2 看到VS包的体积,以及不想往下走 ...

  2. [ASP.NET MVC 小牛之路]18 - Web API

    Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的 ...

  3. .Net Core+Angular6 学习 第一部分(创建web api)

    . 创建.net core web api 1.1 选择一个empty 模式,里面只有简单的2个class 1.2 配置web api 的路由. 1.2.1 打开Startup.cs,首先引用conf ...

  4. 【转】asp.net Core 系列【二】—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API

    在本教程中,将生成用于管理“待办事项”列表的 Web API. 不会生成 UI. 概述 以下是将创建的 API: API 描述 请求正文 响应正文 GET /api/todo 获取所有待办事项 无 待 ...

  5. [Core] .NET Core & VS Code 之路(1) Hello World

    目录 相关链接 dotnet命令 VS Code Hello World Web Hello World 总结 其实本篇上个月已经写好, 只是 但是,不忘初心方得始终 相关链接 Learn .NET ...

  6. Asp.Net Core 3.0 学习3、Web Api 文件上传 Ajax请求以及跨域问题

    1.创建Api项目 我用的是VS2019 Core3.1 .打开Vs2019 创建Asp.Net Core Web应用程序命名CoreWebApi 创建选择API 在Controller文件夹下面添加 ...

  7. Asp.Net Core 3.1 学习3、Web Api 中基于JWT的token验证及Swagger使用

    1.初始JWT 1.1.JWT原理 JWT(JSON Web Token)是目前最流行的跨域身份验证解决方案,他的优势就在于服务器不用存token便于分布式开发,给APP提供数据用于前后端分离的项目. ...

  8. 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)

    HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expo ...

  9. [转]【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)

    本文转自:https://www.cnblogs.com/inday/p/6288707.html HTTP is not just for serving up web pages. It’s al ...

随机推荐

  1. 快速生成apk 自动发布到网站 便于测试

    遇到的问题: 开发者生成的apk 需要不断给 测试安装让他们测试.有没有脚本自动将最新apk上传到服务器,让测试自己安装测试呢?mac电脑 怎么自己搭建文件服务器  启动Tomcat功能在这里不在赘述 ...

  2. winPcap_5_打开适配器并捕获数据包

    知道如何获取适配器的信息了,那我们就开始一项更具意义的工作,打开适配器并捕获数据包.编写一个程序,将每一个通过适配器的数据包打印出来. 打开设备的函数是 pcap_open(). (Open a ge ...

  3. Types of AOP

    There are two distinct types of AOP: static and dynamic. The difference between them is really the p ...

  4. Back to Basics: Using KVO

    One of the things I like most about Apple’s iOS SDK is the consistent and easy-to-use API they provi ...

  5. windows 编程—— 宽字符集 与 Unicode

    目录: 从ASCII码 到 Unicode Windows 编程中的 "字符” 定义 (如何在windows下进行通用编码) 常用的通用函数,定义 (本文为学习<Programming ...

  6. C++ —— 类模板的分离式编译

    目录 对于C++中类模板的分离式编译的认识 具体的实例 1.对于C++中类模板的分离式编译的认识 为什么C++编译器不能支持对模板的分离式编译(博文链接) 主要内容:编译器编译的一般工作原理.对模版的 ...

  7. X265编译中C2220错误的解决办法

    x265编译过程中 C2220错误:根本原因是代码是英文代码页,而我们的操作系统中使用的是中文代码页: 解决办法1 逐个文件进行格式转换,我在ubuntu下用iconv命令试过,没成功: 解决办法2 ...

  8. UGUI的9个重要回调函数

    using UnityEngine; using System.Collections; using UnityEngine.EventSystems; //句柄 public class Butto ...

  9. [week4]每周总结与工作计划

    计算机网络 TAT 小白dp 28号还有一场 背单词 背马克思 python目标80% 熟悉coursera c++模版和 仿函数 人文修养 开学数据库,itercast的sql*2 itercast ...

  10. Windows API一日一练(55)FlushFileBuffers和SetFilePointer函数

    在PC硬件体系结构里,速度最快的存储器是CPU里面的寄存器,接着到二级缓存,再到系统RAM内存,最后才到硬盘.因为这种体系结构,就决定了操作系统对文件的操作方式,或者说是最优化的算法.比方操作系统接收 ...