C#使用SF框架 5分钟搭建Web API服务端
SF是一款支持WEB,TCP,UDP三种通讯协议与它们之间混编的服务端框架SDK。
好,本节我们就开始介绍超简单超易用的SF框架的WEB模块
SF框架下载地址 : ServerFrameWork.org 、(也可通过短链接 mysf.pro 访问)
SF模块是一款非常易用的服务端框架,我们对其接口的易用性做了高度优化,使得即便是不懂后端技术的前端开发人员,也能迅速地开发满足自己需要的后端程序。
主要知识点:1. WEB模块 入门 Hello World
2. ORM模块 入门 操作 MySQL/maria
3. WEB模块进阶 urlMapping回调映射 与 返回数据模型对象
1 Hello World WEB 模块 入门
SF基于.NET 类似于Java的虚拟机
它需要你的操作系统拥有.net Framework(Windows) 或 mono(linux/mac)的支持
我们以C#为例, 首先我们新建一个工程 ,这里为了方便演示我工程类型选择.NET->控制台
然后要导入引用(也就是官网上下载的dll) 同时我们还需要导入一个MySQL.Data.dll,它是MySQL和Maria的数据库对C#的驱动,可以从Mysql官网下载
点击 Edit References
点击上方.Net Assembly 点击下方Browse 选择我们的dll
点OK后发现左边Reference中多了我们的程序集
现在我们需要新建一个继承自SF程序集中的AbstractWebServer的类, 并用Visual Studio 自动补全功能 补全其需要实现的抽象方法
新建一个类
使用SF的命名空间 继承自AbstractWebServer
接下来自动补全其抽象方法
把异常都注释掉 这里我们先实现OnResponse()方法 该方法是网站基URL地址被访问时调用的回调(自定义端口和接受的URL可以通过继承不同构造方法实现 这个我们以后再说)
我们在OnResponse()中使用 SendCustomContent()方法向客户端浏览器发送一个JS弹出窗口
现在我们进入Program类中的Main方法 这是整个Project的入口点
我们在这里new一个刚才我们写的那个类的对象,并调用它的runserver方法
下方暂且用Console.Read()先阻塞一下防止程序运行成功直接退出
点击运行 如果看到如下窗口说明成功运行 那行报错是因为mysql还没有配置 暂且不用管它
好,现在打开浏览器试一下吧 (默认 127.0.0.1:8080 )
2 ORM模块 入门
也许你已经注意到,在console窗口的最顶层输出的程序的路径,在该路径下 程序自动生成了一个配置文件 sf.config ,我们找到它,并用文本编辑文件打开
先将需要改动的配置前的注释标识"#"去掉 然后在等号后填入配置参数
这里 空格引号分号会被自动过滤
完成后保存退出
我们再来到mysql 新建一个用于测试的数据库 myemail
好,我们回到Visual Studio 接下来我们创建一个数据库映射类 ,相比Hibernate ,它的使用非常简单
首先为了让框架知道它是一个映射类,它需要继承自SFModel接口,
然后 我们的字段必须用访问修饰符Public来标识,
同时 我们可以在字段上方添加SF内置的Attribute来标识它是否为主键,是否自增,甚至自定义mysql中的数据类型(如果没有自定义,SF则会根据其在C#中的类型自动转换成对应的mysql类型,这里需要注意的是 string会一律转成text)
操作完成后我们运行它
这里我们看到 数据库已经连接成功 并且提示MyTable表也创建成功 我们进入mysql验证一下
OK,ORM先讲到这里,下一节将它如何在实际情况中的应用
3. WEB模块进阶 urlMapping回调映射 与 返回数据模型对象
使用SF框架 你完全不用知道服务器是怎么解析和构造json或xml的,尤其是对于用惯了Unity的快捷JsonUtility的前端工程师,在刚开始接触服务器的这块时往往是一头雾水。这里SF提供了SFJsonUtility 和 SFXmlUtility ,它们的用法和Unity中JsonUtility 完全一致。不过话说回来,实际你在SF中大多数情况下根本不会遇见需要手动构造和解析Json或Xml的需求。
这里 我们先写一个用于传递对象的模型类 myDataModel 注意数据模型的所有字段也都需要是public的
然后我们写一个回调方法用于处理url请求,然后把这个回调方法用Add方法和"/email"的url绑定,并注册在urlMapping回调方法中。
你可以看到在这里我们使用SendCustomObjectByJson来直接把一个数据模型类的对象发送出去
我们使用SFDatabase.AddItem<表名>(“字段名1=>值1”,“字段名2=>值2” ...)的方式插入数据
这里使用SFDatabase.Query<表名>(“要查询的字段名”,“条件字段名1=>条件值”...)的方式查询字段
当然查询功能上SF还封装了更多自定义的方法,提供对 like, join, group by, having , order by ,limit 常用功能的简单支持。
好,最后运行一下
测试一下写入
OK
再测试一下查询
OK
今天的教程就到这里
最后说一下免费个人版和企业版的不用在于对高并发的优化上,以及极少数特殊功能的方法上,例如企业版的ORM模块在数据表结构变动的情况下会保持数据不变而改动表结构,免费版的则会备份原表然后重制一张空的新表,对于了解SQL的人来说完全可以手动做到企业版的功能,其他的付费版独有的特殊方法也是一样。
注册方法:
注册方式是程序运行时会自动生成一个***,除了控制台也会在程序的路径下生成一个包含***的md文件,把***拿到官方,购买后得到**码,写入sf.config配置文件,启动即可。