基于.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; }
        }
    }
View Code

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; }
        }
    }
View Code

(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();
        }
View Code

 

 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

6.https://blog.csdn.net/lwpoor123/article/details/127789441

 7.https://www.bbsmax.com/A/VGzlgomNdb/

posted @ 2023-05-31 17:10  HelloWorld庄先生  阅读(502)  评论(0编辑  收藏  举报