[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下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
在上文中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行代码就展示了一个基本工作原理.然而,要将这样的解决方案运用到实际生产环境,还有很 ...
随机推荐
- Windows远程连接CentOS桌面
VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件.VNC的基本运行原理和一些Windows下的远程控制软件很相像 VNC基本上是由两部 ...
- HLG1116-选美大赛
Description 一年一度的哈理工选美大赛开始了.来自各个院系的N个美女们都在一起排成一排,然后从左到右给他们标号(1-N),评委叫兽开始观摩,由于身高高低都不同, 叫兽想从中选出尽可能多的人使 ...
- 苹果未来:增强现实设备将会取代iPhone
近日,华尔街知名度相当高的苹果分析师木斯特(Gene Munster)决定转行组建自己的风险投资公司,临走前他发布了最后一份关于苹果的研究报告,他对苹果未来的发展进行了一番预测.Munster表示,以 ...
- 存储过程执行失败与sql668n
某日监控报存储过程执行失败,查看返回码为sql668n [db2inst1@limt bin]$ db2 ? sql668n SQL0668N Operation not allowed for re ...
- cesiumjs开发实践之坐标转换
cesium中常用的坐标有两种WGS84地理坐标系和笛卡尔空间坐标系.我们平时常用的以经纬度来指明一个地点就是用的WGS84坐标,笛卡尔空间坐标系常用来做一些空间位置变换如平移旋转缩放等等. 笛卡尔空 ...
- jqgrid no url reset
如果发现 jqgrid 在运行中出现次错误,可能是以下原因 $('#@(ViewBag.tabcid + "_grid")').jqGrid('navGrid', '#@(View ...
- Python爬虫:Xpath语法笔记
一.选取节点 常用的路劲表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 xpath(‘//div’) 选取了div节点的所有子节点 / 从根节点选取 xpat ...
- linux内核分析作业3:跟踪分析Linux内核的启动过程
内核源码目录 1. arch:录下x86重点关注 2. init:目录下main.c中的start_kernel是启动内核的起点 3. ipc:进程间通信的目录 实验 使用实验楼的虚拟机打开shell ...
- 【iCore3双核心板】发布 iCore3 应用开发平台用户手册
PDF手册下载地址:http://pan.baidu.com/s/1miBBYi8 iCore3应用开发平台购买地址:https://item.taobao.com/item.htm?spm=a1z1 ...
- springMVC、httpClient调用别人提供的接口!!!(外加定时调用)
import com.ibm.db.util.AppConfig; import com.ibm.db.util.JacksonUitl; import org.apache.http.HttpEnt ...