三国志14信息查询小程序(历史武将信息一览)制作更新过程05-后台接口的编写及调用

1,创建ASP.NET Web API项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成完毕,项目结构如下:
在这里插入图片描述
运行看一下:
在这里插入图片描述

2,后台接口编写

(1)在Models文件夹中新建一个sandata.cs文件(就是上篇中武将信息表的model文件)
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace API.Models
{public  class Sandata{/// <summary>/// Desc:/// Default:/// Nullable:False/// </summary>           [SugarColumn(IsPrimaryKey=true)]public int Id {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string sex {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public int tongshuai {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public int wuli {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public int zhili {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public int zhengzhi {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public int meili {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string zhuyi {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string zhengce {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string zhengcedengji {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string peiou {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string name {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gexing1 {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gexing2 {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gexing3 {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gexing4 {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gexing5 {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string shengnian {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string dengchang {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string zunian {get;set;}/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hjqy { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string fdlm { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string eyyx { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string qxgj { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gdzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string sgml { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string cbzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hzzdz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string gybww { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string csb { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string ztld { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hdlb { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hszc { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hbys { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string cjfl { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string zzql { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string eftx { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string jmc { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string qfzh { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string yxjj { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string yxlw { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string yyyz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string ccds { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string lbtfz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>           public string hbzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string tgzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string hfzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string ylzz { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string zfnm { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string qfwzy { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string zszb { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string shmw { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string htdl { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string hbgs { get; set; }/// <summary>/// Desc:/// Default:/// Nullable:True/// </summary>public string xsbl { get; set; }/// <summary>/// alias:/// Default:/// Nullable:True/// </summary>           public string alias { get; set; }/// <summary>/// biography1:/// Default:/// Nullable:True/// </summary>           public string biography1 { get; set; }/// <summary>/// biography2:/// Default:/// Nullable:True/// </summary>           public string biography2 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string biography3 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string xiangxing { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string xueyuan { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string fuqin { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string muqin { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string shidai { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string yxd { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string zx { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string zf { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like1 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like2 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like3 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like4 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like5 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like6 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like7 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string like8 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike1 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike2 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike3 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike4 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike5 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike6 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike7 { get; set; }/// <summary>/// biography3:/// Default:/// Nullable:True/// </summary>           public string dislike8 { get; set; }public string qingyi { get; set; }public string yexin { get; set; }public string hanchao { get; set; }public string haozhan { get; set; }public string waijiao { get; set; }public string wuzi { get; set; }public string jianshe { get; set; }}
}
(2)在Models文件夹中新建一个MessageModel.cs文件作为通用返回格式:
namespace API.Models
{/// <summary>/// 通用返回信息类/// </summary>public class MessageModel<T>{/// <summary>/// 状态码/// </summary>public int status { get; set; } = 200;/// <summary>/// 页码/// </summary>public int page { get; set; }/// <summary>/// 数据条数/// </summary>public int pageCount { get; set; }/// <summary>/// 操作是否成功/// </summary>public bool success { get; set; } = false;/// <summary>/// 返回信息/// </summary>public string msg { get; set; } = "服务器异常";/// <summary>/// 返回数据集合/// </summary>public T response { get; set; }}
}
(3)在Controllers文件夹里新建DataController.cs文件(新建控制器)
(4)使用sqlsugar这一款ORM框架来进行数据库操作

程序NuGet引入两个类库sqlsugar和Newtonsoft.Json
在这里插入图片描述
在这里插入图片描述

(5)Controllers文件夹下新建Helper.cs类

在这里插入图片描述
Helper.cs全部内容如下:

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace API.Helper
{public class dbContext{private static SqlSugarClient _db = null;/// <summary>/// test是数据库名/// </summary>                                          public static string ConnectionString = "server=localhost;uid=xxx;pwd=xxx;database=vue_test";public static SqlSugarClient CretClient(){_db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = ConnectionString, //数据库连接字符串DbType = DbType.MySql, //必填IsAutoCloseConnection = false, //默认falseInitKeyType = InitKeyType.Attribute});return _db;}}
}

其中,DbType = DbType.MySql表示我们要连接的数据库为mysql,当然你也可以选择其他的数据库。或者切换多个不同的数据库(具体查看官方文档,既上面的sqlsugar),本篇中只使用一个数据库。server=localhost;uid=xxx;pwd=xxx;database=xxx为连接字符串,这是Mysql的连接字符串样式,不同的数据库是不同的,把里面的xxx换为你自己的数据库用户名,密码,使用的数据库名。

(6)打开我们之前写的DataController.cs文件添加接口方法

首先使用Helper.cs里新建的DbContext类来连接数据库

public static SqlSugarClient DbContext = dbContext.CretClient();

在这里插入图片描述
添加引用。此时,当前文件完整引用为:

using Newtonsoft.Json;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MySql.Data.MySqlClient;
using System.Collections;
using System.Text;
using System.Threading.Tasks;
using API.Models;
using System.Collections.Generic;
using System.Web;
using SqlSugar;
using System.Diagnostics;
using System.Reflection;
using API.Helper;

然后添加接口方法,例如添加一个分页查询的方法

        /// <summary>/// 获取数据(分页)/// </summary>///<param name="page">当前页数</param>///<param name="intPageSize">每页显示数据条数</param>///<param name="key">查询条件</param>public async Task<MessageModel<object>> GetAsync(int page = 1,int intPageSize=10,string key=""){Expressionable<Data> exp = Expressionable.Create<SanData>();if (!string.IsNullOrEmpty(key)){exp.And(it => it.Name.Contains(key));}var result = DbContext.Queryable<SanData>().Where(exp.ToExpression()).ToPageList(page, intPageSize);return await Task.FromResult(new MessageModel<object>(){status = 200,success = true,msg = "获取成功",response = result});}

3,接口发布

(1)首先打包项目

项目上右键,选择“发布”
在这里插入图片描述
点击发布,目标位置里的app.publish文件夹就是我们后台打的包

(2)然后通过IIS发布

如果是新的服务器可能需要启用IIS服务
在这里插入图片描述

4,接口调用

注意1:接口在小程序使用之前,应保证可在外网访问。(这可在服务器平台的安全组设置以及服务器的出入口规则设置端口号来实现)
注意2:正式上线的小程序如要访问外网接口,接口必须是绑定在已经备案的域名上;并且,在小程序平台上的开发管理中,将开发设置下的服务器域名配置成你备案的域名。若是在本地微信开发者工具上访问,则先直接访问IP地址加端口号的形式也可以。

这里以获取亲爱/厌恶武将A的数据接口GetAllBeLove为例:
请求url为:BASE_URL /GetAllBeLove
参数有两个,name即武将名称,type即亲爱/厌恶

在小程序中获取数据:

         //获取亲爱武将A的数据let name="刘备";let type="like";let result_like = await fetchData(BASE_URL + 'GetAllBeLove', { name, type });//请求数据async function fetchData(url, data = {}) {return new Promise((resolve, reject) => {wx.request({url,data,header: {'content-type': 'application/x-www-form-urlencoded'},method: "GET",success: resolve,fail: reject});});}  

获取结果结构如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/184229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伦敦金开户需要多少资金,有开户条件吗?

伦敦金&#xff08;London Gold&#xff09;是黄金市场中备受瞩目的投资种类之一&#xff0c;无论是专业投资者还是新手&#xff0c;都对伦敦金感兴趣。但关于开户需要多少资金&#xff0c;以及是否有特定的开户条件&#xff0c;这些问题可能会让一些新手投资者感到困惑。 首先…

notepad++搜索结果窗口不见了

1、使用notepad打开一个文件文件 2、ctrlf&#xff0c;打开搜索窗口&#xff0c;随便搜索一个内容 3、按F7,然后AltF7 切换焦点到Find result. 会有一个小窗口出现&#xff0c;内容是&#xff1a;还原&#xff0c;移动&#xff0c;大小等 4&#xff0c;点移动&#xff0c;使…

[答疑]校长出轨主任流程的业务建模

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 艳阳天 2023-10-27 19:45 我有点迷糊。校长出轨主任在酒店被拍到&#xff0c;不属于学校的业务流程&#xff0c;但闹出这种事对学校有很大影响。如果学校想用一个系统抓风纪&#xff…

论文阅读—— BiFormer(cvpr2023)

论文&#xff1a;https://arxiv.org/abs/2303.08810 github&#xff1a;GitHub - rayleizhu/BiFormer: [CVPR 2023] Official code release of our paper "BiFormer: Vision Transformer with Bi-Level Routing Attention" 一、介绍 1、要解决的问题&#xff1a;t…

OpenLayers入门,OpenLayers加载离线xyz瓦片地图并显示离线鹰眼控件

专栏目录: OpenLayers入门教程汇总目录 前言 本章介绍如何使用OpenLayers加载离线xyz瓦片地图图层,并显示离线xyz瓦片的鹰眼控件。 本章是综合案例,涉及到两块内容,一个是离线瓦片地图加载,二个是鹰眼控件,拆分的参考文章如下: OpenLayers入门,OpenLayers地图鹰眼控…

Java面试题(每天10题)-------连载(26)

目录 多线程篇 1、什么是FutureTask&#xff1f; 2、什么是同步容器和并发容器的实现&#xff1f; 3、什么是多线程的上下文切换&#xff1f; 4、ThreadLocal的设计理念与作用&#xff1f; 5、ThreadPool&#xff08;线程池&#xff09;用法与优势&#xff1f; 6、Concur…

智能文件改名:高效复制并删除冗余,简化文件管理“

在繁杂的电脑文件世界中&#xff0c;如何高效地管理文件成为了许多人的难题。为了解决这一难题&#xff0c;我们推出了一款智能文件改名工具&#xff0c;它能够轻松复制文件并删除目标文件夹中的冗余文件&#xff0c;让您的文件管理更加高效便捷。 第一步&#xff0c;我们要打…

【网络协议】聊聊HTTPDNS如何工作的

传统 DNS 存在哪些问题&#xff1f; 域名缓存问题 我们知道CND会进行域名解析&#xff0c;但是由于本地会进行缓存对应的域名-ip地址&#xff0c;所以可能出现过期数据的情况。 域名转发问题 出口 NAT 问题 域名更新问题 解析延迟问题 因为在解析DNS的时候&#xff0c;需要进行…

Flink--Data Source 介绍

Data Source 简介 Flink 做为一款流式计算框架&#xff0c;它可用来做批处理&#xff0c;即处理静态的数据集、历史的数据集&#xff1b;也可以用来做流处理&#xff0c;即实时的处理些实时数据流&#xff0c;实时的产生数据流结果&#xff0c;只要数据源源不断的过来&#xff…

Spring的缓存机制-循环依赖

群公告 Java每日大厂面试题&#xff1a; 1、Spring 是如何解决循环依赖&#xff1f; 答案&#xff1a;三级缓存&#xff0c;简单来说&#xff0c;A创建过程中需要B&#xff0c;于是A将自己放到三级缓存里面&#xff0c;去实例化B&#xff0c;B实例化的时候发现需要…

【AICFD案例教程】进气歧管分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件&#xff0c;用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程&#xff0c;帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

CSS时间线样式

css实现时间线样式&#xff0c;效果如下图&#xff1a; 一、CSS代码 .timeline {padding-left: 5px} .timeline-item { position: relative;padding-bottom: 20px;} .timeline-axis {position: absolute;left: -5px;top: 0;z-index: 10;width: 20px;height: 20px;line-he…

Android Studio报错:connect refused

参考链接&#xff1a; https://blog.csdn.net/qq_43213783/article/details/113936012 参考文章中说报错主要是由于代理导致的&#xff0c;在文件->设置->外观与行为->系统设置->HTTP代理。 方法一&#xff1a; 查看打开代理&#xff08;前提是代理可以通网&#x…

数据可视化PCA与t-SNE

PCA&#xff08;主成分分析&#xff09;和t-SNE&#xff08;t分布随机近邻嵌入&#xff09;都是降维技术&#xff0c;可以用于数据的可视化和特征提取。 降维&#xff1a;把数据或特征的维数降低&#xff0c;其基本作用包括&#xff1a; 提高样本密度&#xff0c;以及使基于欧…

实验(一):运算器实验

一、实验内容与目的 实验要求&#xff1a; 利用 CP226 实验仪的 K16..K23开关做为DBUS数据&#xff0c;其它开关做为控制信号&#xff0c;将数据写累加器A和工作寄存器W&#xff0c;并用开关控制ALU的运算方式&#xff0c;实现运算器的功能&#xff0c;将结果送入OUT寄存器。 实…

C# TCP Server服务端多线程监听RFID读卡器客户端上传的读卡数据

本示例使用设备介绍&#xff1a;液显WIFI无线网络HTTP协议RFID云读卡器可编程实时可控开关TTS语-淘宝网 (taobao.com) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sy…

EM@解三角形@正弦定理@余弦定理

文章目录 abstract解三角形基本原理不唯一性 正弦定理直角三角形中的情形推广锐角三角形钝角情形 小结:正弦定理 余弦定理直角三角形中的情形非直角情形小结:余弦定理公式的角余弦形式 abstract 解直角三角形问题正弦定理和余弦定理的推导 对于非直角情形,都是直角情形的推广同…

机器视觉的试卷批改系统 - opencv python 视觉识别 计算机竞赛

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

微服务架构深入理解 | 技术栈

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 微服务架构深入理解 | 技术栈 服务网关 服务网关是在微服务架构中扮演重要角色的组件&#xff0c;它是系统对外的入口&#xff0c;负责接收和处理客户端的请求&#x…

【算法 | 模拟No.3】leetcode 38. 外观数列

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【Leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…