[Core] .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 添加的依赖
"dependencies": {
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", //webhost
"Microsoft.AspNetCore.Mvc": "1.0.0" //webapi mvc
}
添加的Startup.cs
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
using Microsoft.AspNetCore.Mvc; public class ValuesController
{
[HttpGet("/values/{name}")]//name参数注入
public string Index(string name)
{
return "Hello World:" + name; }
}
修改的Program.cs
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修改的内容
"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类
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)一样

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>@ViewBag.Name</h1>
</body>
</html>
修改Program.cs
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
"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"//静态文件
},
注册管道
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();//需要在mvc前 否则将优先被mvc路由匹配执行
app.UseMvc();
}
添加静态文件
静态文件默认是以wwwroot文件夹为根目录

注意:
- 添加依赖后,需要Restore后才能使用该库
- 本节由于篇幅问题,去除了配置文件的大量说明
- 本文地址:http://www.cnblogs.com/neverc/p/5801210.html
[Core] .NET Core & VS Code 之路(2) Web API的更多相关文章
- NET Core & VS Code 之路(2) Web API
NET Core & VS Code 之路(2) Web API 开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 20 ...
- 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
<ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...
- .NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题
开门见山地说一下问题的原因:调用 web api 时请求头中多了双引号,请求体中少了双引号. 腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest ...
- [ASP.NET MVC 小牛之路]18 - Web API
Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的 ...
- asp.net core 2.0 web api基于JWT自定义策略授权
JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...
- 国产化之路-安装WEB服务器
专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo
在上一篇里,我已经建立了一个简单的Web-Demo应用程序.这一篇将记录将此Demo程序改造成一个Web Api应用程序. 一.添加ASP.NET Core MVC包 1. 在project.json ...
- 【翻译】在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 ...
- ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
在上文中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行代码就展示了一个基本工作原理.然而,要将这样的解决方案运用到实际生产环境,还有很 ...
随机推荐
- jsp 中登录验证 注销 的模版
用户名密码验证模版 <%@page import="com.jerehedu.bao.User"%> <%@ page language="ja ...
- 关于在程序中 文件新生成 在用os.system()程序对新生成的文件处理 举个栗子 如下:
print 'save to ',savedir+os.sep+d["FILE_NAME"] ff = open(savedir+os.sep+d[& ...
- 破解加密PDF文件pdfcrack
破解加密PDF文件pdfcrack PDF是常见的文档格式.它允许用户设置双重密码来保护文档.第一重是用户密码(user password),当打开PDF文档,输入该密码.第二重是所有者密码(ow ...
- myBaties 和 mysql开发中遇到的问题
最近开发内部平台遇到mysql 中的一个问题,order by语句需要在limit 之后. myBaties在parameterType="java.lang.String" 不能 ...
- RStudio技巧01_美化RStudio的帮助页面
R中的package及其函数实在太多,经常遇到不会使用或者忘记如何使用的的package和函数,所以总会查阅帮助文档,在Rstudio中提供了专门的help面板,当遇到不懂的package或者函数时只 ...
- (MTT)连续能量函数最小化方法
(MTT)连续能量函数最小化方法 Multitarget tracking Multi-object tracking 连续能量函数 读"A.Milan,S. Roth, K. Schind ...
- 【Unity3d游戏开发】unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(转载)
此文为转载,因为最近在做U3D,有一些概念弄得不是很清楚,看到这篇博客讲的不错,就转载过来了,方便自己随时查看. ------------------------------------------- ...
- Connect the Cities[HDU3371]
Connect the Cities Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Qt Visual Studio Add-in 导出的 .pri 怎么用?
今天咱们介绍一下 Qt Add-in 导出的 pri 文件怎么用. 一般需要导出这个文件, 主要应该是跨平台编译的需求, 所以这个文件里包含的东西会比较少, 咱们看下导出的文件是什么样子的: # ...
- 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...