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. 【动态规划】XMU 1588 01序列计数

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1588 题目大意: 给n1个0和n2个1,连续的0不超过k1个,连续的1不超过k2个.问 ...

  2. X86 I/O端口

    与外设的交互都是通过读写外设上的寄存器进行的,外设的寄存器也成为“I/O端口”,它有两种编制方式:统一编址和独立编址. 统一编址: 外设接口中的IO寄存器(即IO端口)与主存单元一样看待,每个端口占用 ...

  3. UVALive 4957 Fake scoreboard

    题意就是有n个队伍和m个题目 给出了每个队伍解决的题目数量 每个题目也给出了被解决的次数 然后求一个方阵. N,Y表示每个队伍是否过了哪个题目. 要求字典序最小. 这题给人的第一反应就是网络流. 虽然 ...

  4. div+css 圆角加阴影

    .test{ display: inline-block; padding: 5px 10px 6px; text-decoration: none; border-radius: 5px; -moz ...

  5. postgres中的merge join

    目前数据库中的join操作 无非三种 nextloop merge hash 本文分析pg的merge join 不得不说pg真是学习数据库实现的好东西 不愧是学院派 用来教学的 代码写的干净注释清晰 ...

  6. java垃圾回收算法

    1.标记-清除 2.标记-复制 3.标记-整理 4.分代混合算法

  7. ffmpeg错误隐藏框架分析

    本文主要是分析ffmpeg的错误隐藏框架,故解码流程此处不会特地进行讨论,网上其他地方其实也有不少介绍相关流程的了,但发现基本没有介绍错误隐藏流程的,故本文希望能填补这个空白. 我们直接从decode ...

  8. cocos2d 高仿doodle jump 无源代码

    1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具.主角光环,竹蜻蜓.翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...

  9. Linux/UNIX套接字连接

    套接字连接 套接字是一种通信机子.凭借这样的机制.客户/server系统的开发工作既能够在本地单机上进行.也能够夸网络进行. 套接字的创建和使用与管道是有差别的.由于套接字明白地将客户和server区 ...

  10. Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...