基于.NET的Web API开发/发布技巧
1.WebAPI概述
2.HTTP协议
3.WebAPI的开发
创建新项目,选择ASP.NET CORE WbeAPI作为一个初始的WebApi模板,只需要创建控制器(在Controllers文件夹右击选择添加----控制器),控制器代码如下
[Route("api/[controller]/[action]")]//必须要有这个 public class HomeController : Controller { public IActionResult Index() { return View(); } [HttpGet] public int GetAdd(int a, int b) { return a + b; } [HttpPost] public string PostAdd([FromBody] TempClass a) { return a.Value0; } public class TempClass { public string Value0 { get; set; } public string Value1 { get; set; } } }
4.WebAPI的发布
1)将WEBAPI发布到IIS上,参考4
2)使用OWIN搭建WEBAPI的HTTP服务器,参考1
过程:
(1)管理程序包,安装WebApi.Owin,Microsoft.Owin.Host.HttpListener,Microsoft.Owin.Hosting和Owin。
(2)添加Startup类,它是Owin约定的,用于Owin做相关配置,代码如下
using Owin; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace OwinTest { public class Startup { public void Configuration(IAppBuilder appBuilder) { // 创建 Web API 的配置 var config = new HttpConfiguration(); // 启用标记路由 config.MapHttpAttributeRoutes(); // 默认的 Web API 路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); // 将路由配置附加到 appBuilder appBuilder.UseWebApi(config); } } }
(3)新建Controllers文件夹,添加QueryController类,包含4种请求方式(GET/POST/PUT/DELETE)
public class QueryController:ApiController { // GET api public string Get(string id) { return id; } // POST api public string Post([FromBody] DeParams dp) { return dp.TValue0; } // PUT api public void Put(int id, string value) { } // DELETE api public void Delete(int id) { } public class DeParams { public string TValue0{get;set;} public string TValue1 { get; set; } } }
(4)添加启动方法
static void Main(string[] args) { string baseAddress = "http://localhost:9000/"; // Start OWIN host //using (WebApp.Start<Startup>(url: baseAddress)) //{ // HttpClient client = new HttpClient(); // Console.WriteLine(baseAddress); // Console.ReadLine(); //} var disposeTemp= WebApp.Start<Startup>(url: baseAddress);//disposeTemp在程序关闭时可进行销毁 Console.ReadLine(); }
5.WebAPI和Mysql数据库交互,基于EntityFrameworkCore,参考7
1)安装包:Microsoft.EntityFrameworkCore\Mysql.EntityFrameworkCore\Swashbuckle.ASPNetCore
2.在数据库中创建一个表结构
3.在C#中创建对应的实体类,另外创建一个类继承DbContext,DbContext是EF框架中非常重要的一个环节,是建立实体类与数据库连接的桥梁。需要在appsetting.json文件中添加数据库连接属性。
4.创建控制器
5.参考
1.https://www.cnblogs.com/webenh/p/8979510.html
2.https://www.cnblogs.com/alunchen/p/7049307.html
3.https://blog.csdn.net/weixin_71777499/article/details/125934005
4.https://blog.csdn.net/weixin_44884379/article/details/112466063
5.https://www.cnblogs.com/ma1998/p/16295321.html