[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 pip安装 更新
升级: http://blog.csdn.net/liuchunming033/article/details/39578019 pip坏了如何重新安装: https://github.com/pyp ...
- 【Oracle】oracle取最大值和最小值的几个方法汇总
(1)oracle使用keep分析函数取最值记录 -- 取工资sal最大的雇员姓名及其工资,以及工资sal最少的雇员姓名及其工资 select deptno, empno, ename, sal, m ...
- 冰球项目日志2-yjw
我们小组在12.31号进行了讨论,确定了基本的任务及分工,后面是元旦放假,大家没有做很多的东西,我也是把自己分工的部分方案想了下. 后面在1.3号,我们会再进行一次小组讨论,确定下最终的方案,然后进行 ...
- requirejs:模块加载(require)及定义(define)时的路径小结
原文地址:http://www.tuicool.com/articles/7JBnmy 接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模 ...
- 你应该在开始API开发之前知道的事(上)(翻译)
这篇文章的源地址:http://dev.dota2.com/showthread.php?t=58317 由于文章内容较多,英语水平有限,准备尝试着以中英混搭的形式翻译,免得曲解一些不懂内容的意思.以 ...
- mysql缓存、存储引擎
一. mysql查询缓存 查询缓存不是mysql的子系统,却是查询优化和执行子系统不可缺少的组成部分.它不仅可以缓存查询结果,还可以缓存查询结果本身.如果某个查询的结果就在缓存里, 系 ...
- 工作中的sql语句总结
1,查找mysql 数据库 自动 添加 序号 字段列1,2,3,4 ) AS rowno,ip,startcount ) b 2,mysql的分页语句 limit后面第一个参数是index,从0开始: ...
- JavaScript之闭包就是个子公司
在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外.所以,有 ...
- USACO翻译:USACO 2014 JAN三题(2)
USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...
- Redhat 一则关于路由及DNS配置的实例
安装了Redhat 7.2, 配置路由, 但发现路由重启之后,不能生效. 配置路由: touch /etc/sysconfig/static-router, 然后编辑路由信息如下. any defau ...