C# API接口搭建

一、 利用ashx搭建

参考文章:https://blog.csdn.net/ZYD45/article/details/79939475

  1. 创建ASP.NET Web应用程序
    在这里插入图片描述

  2. 添加 .ashx 文件
    在这里插入图片描述

  3. 编写代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data;
    
    namespace WebApplication1.API
    {
        /// <summary>
        /// MyHandler 的摘要说明
        /// </summary>
        public class MyHandler: IHttpHandler
        {
            
            public void ProcessRequest(HttpContext context)
            {
    
                HandlerResultModel mHandlerResult = null;
                string sActionType = context.Request.Params.Get("ActionType") == null ? "" : context.Request["ActionType"].Trim();
                string callback = HttpContext.Current.Request["jsoncallback"];
                try
                {
                	//接口1
                    if (sActionType.Equals("Query"))
                    {
                        string sDate = context.Request.Params.Get("Date") == null ? "" : context.Request["Date"].Trim();
                        DataSet ds = Query(sDate);
                        mHandlerResult = new HandlerResultModel("T", ds, "success");
                    }
                    //接口2
                    else if (sActionType.Equals("Test"))
                    {
                        mHandlerResult = new HandlerResultModel("T", "", "success");
                    }
    
                }
                catch (Exception ex)
                {
                    mHandlerResult = new HandlerResultModel("F", "", ex.Message);
                }
    			
    			//转换为Json格式
                context.Response.ContentType = "application/json";
                context.Response.ContentEncoding = System.Text.Encoding.UTF8;
                string sJsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(mHandlerResult);
                context.Response.Write(callback + "(" + sJsonResult + ")");
                context.Response.End();
            }
    			
    			
            /// <summary>
            /// 数据库查询
            /// </summary>
            /// <param name="Date">日期</param>
            /// <returns></returns>
            public DataSet Query(string Date)
            {
                string sConnection= "Server={sqlIP};Integrated Security=no;User Id={sqlID};PWD={sqlPassword};initial catalog = {sqlTablename}; Connect Timeout = 60000;";
                string sql = string.Format($@"SELECT MachineName,StationNo,RunningTime,PowerOnTime,PowerOffTime,MoNoCount,OEE FROM EquFarming
                                            WHERE CreateDate>='{Date}'");
                //连接数据库查询数据并获取记录
                DataSet ds = SqlHelper.ExecuteDataset(sConnection, CommandType.Text, sql);
                if (ds.Tables.Count < 1)
                {
                    throw new Exception("获取数据库出错");
                }
                return ds;
            }
            
    	}
    
    	
    

    HandlerResultModel类(用于规范 response 格式)

    namespace WebApplication1
    {
        [Serializable]
        public class HandlerResultModel
        {
            private string sFlag;
            private object oResult;
            private string sErrorMessage;
    
            public HandlerResultModel()
            {
                this.sFlag = "";
                this.oResult = "";
                this.sErrorMessage = "";
            }
    
            public HandlerResultModel(string Flag, object Result, string ErrorMessage)
            {
                this.sFlag = Flag;
                this.oResult = Result;
                this.sErrorMessage = ErrorMessage;
            }
    
            public string Flag { get { return sFlag; } set { sFlag = value; } }
            public object Result { get { return oResult; } set { oResult = value; } }
            public string ErrorMessage { get { return sErrorMessage; } set { sErrorMessage = value; } }
        }
    }
    
  4. 启动项目,将地址改为接口地址,就可以得到接口传输的数据了。
    (JSON的显示使用了JsonHandler插件,可以按照在chrome浏览器)
    在这里插入图片描述

二、创建ASP.NET CORE Web API

参考文章:https://www.yisu.com/zixun/508327.html

  1. 创建 ASP.NET CORE Web API 项目,取消配置HTTPS选项
    在这里插入图片描述
    在这里插入图片描述
  2. 添加 API控制器
    在这里插入图片描述
  3. 编写代码
    using Microsoft.AspNetCore.Http;
    using Microsoft.AspNetCore.Mvc;
    
    namespace WebAPI.Controllers
    {
        [Route("api/[controller]/[action]")]//一级路由
        [ApiController]
        public class ValuesController : ControllerBase
        {
    
    		 [HttpGet("{name}/{id}/{date}")]
            //通过get请求的子路由,如果这里不写()里面的话,则URL采用api/values/SignIn?name=value的方式传值
            //如果写在()里面,则可以通过api/values/signin/values的方式传值
            public string SignIn(string name,int id,string date)
            {
                return $"测试接口1:输入参数为{name},{id},{date}" ;
            }
    		
    		[HttpGet]
            public string SignOut(string name)
            {
                return "测试接口2:" + name;
            }
        }
    }
    
  4. 启动项目
    在这里插入图片描述
    在这里插入图片描述
  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值