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->控制台

C#使用SF框架 5分钟搭建Web API服务端

然后要导入引用(也就是官网上下载的dll) 同时我们还需要导入一个MySQL.Data.dll,它是MySQL和Maria的数据库对C#的驱动,可以从Mysql官网下载


点击 Edit References

C#使用SF框架 5分钟搭建Web API服务端

点击上方.Net Assembly 点击下方Browse 选择我们的dll 

C#使用SF框架 5分钟搭建Web API服务端

点OK后发现左边Reference中多了我们的程序集

C#使用SF框架 5分钟搭建Web API服务端

 

现在我们需要新建一个继承自SF程序集中的AbstractWebServer的类, 并用Visual Studio 自动补全功能 补全其需要实现的抽象方法


新建一个类

C#使用SF框架 5分钟搭建Web API服务端


使用SF的命名空间 继承自AbstractWebServer

C#使用SF框架 5分钟搭建Web API服务端

接下来自动补全其抽象方法

C#使用SF框架 5分钟搭建Web API服务端

C#使用SF框架 5分钟搭建Web API服务端


把异常都注释掉 这里我们先实现OnResponse()方法 该方法是网站基URL地址被访问时调用的回调(自定义端口和接受的URL可以通过继承不同构造方法实现 这个我们以后再说)

我们在OnResponse()中使用 SendCustomContent()方法向客户端浏览器发送一个JS弹出窗口

C#使用SF框架 5分钟搭建Web API服务端

现在我们进入Program类中的Main方法 这是整个Project的入口点

我们在这里new一个刚才我们写的那个类的对象,并调用它的runserver方法

下方暂且用Console.Read()先阻塞一下防止程序运行成功直接退出


C#使用SF框架 5分钟搭建Web API服务端


点击运行 如果看到如下窗口说明成功运行 那行报错是因为mysql还没有配置 暂且不用管它

C#使用SF框架 5分钟搭建Web API服务端

好,现在打开浏览器试一下吧 (默认 127.0.0.1:8080 )


C#使用SF框架 5分钟搭建Web API服务端



2  ORM模块 入门

    也许你已经注意到,在console窗口的最顶层输出的程序的路径,在该路径下 程序自动生成了一个配置文件 sf.config ,我们找到它,并用文本编辑文件打开

C#使用SF框架 5分钟搭建Web API服务端

先将需要改动的配置前的注释标识"#"去掉 然后在等号后填入配置参数

这里 空格引号分号会被自动过滤

完成后保存退出

C#使用SF框架 5分钟搭建Web API服务端

我们再来到mysql 新建一个用于测试的数据库 myemail

C#使用SF框架 5分钟搭建Web API服务端

好,我们回到Visual Studio 接下来我们创建一个数据库映射类 ,相比Hibernate ,它的使用非常简单

首先为了让框架知道它是一个映射类,它需要继承自SFModel接口,

然后 我们的字段必须用访问修饰符Public来标识,

同时 我们可以在字段上方添加SF内置的Attribute来标识它是否为主键,是否自增,甚至自定义mysql中的数据类型(如果没有自定义,SF则会根据其在C#中的类型自动转换成对应的mysql类型,这里需要注意的是 string会一律转成text) 


C#使用SF框架 5分钟搭建Web API服务端


操作完成后我们运行它

C#使用SF框架 5分钟搭建Web API服务端

这里我们看到 数据库已经连接成功 并且提示MyTable表也创建成功 我们进入mysql验证一下

C#使用SF框架 5分钟搭建Web API服务端

OK,ORM先讲到这里,下一节将它如何在实际情况中的应用


3. WEB模块进阶 urlMapping回调映射 与 返回数据模型对象 

使用SF框架 你完全不用知道服务器是怎么解析和构造json或xml的,尤其是对于用惯了Unity的快捷JsonUtility的前端工程师,在刚开始接触服务器的这块时往往是一头雾水。这里SF提供了SFJsonUtility 和 SFXmlUtility ,它们的用法和Unity中JsonUtility 完全一致。不过话说回来,实际你在SF中大多数情况下根本不会遇见需要手动构造和解析Json或Xml的需求。


这里 我们先写一个用于传递对象的模型类 myDataModel 注意数据模型的所有字段也都需要是public的

C#使用SF框架 5分钟搭建Web API服务端

然后我们写一个回调方法用于处理url请求,然后把这个回调方法用Add方法和"/email"的url绑定,并注册在urlMapping回调方法中。

C#使用SF框架 5分钟搭建Web API服务端

你可以看到在这里我们使用SendCustomObjectByJson来直接把一个数据模型类的对象发送出去

我们使用SFDatabase.AddItem<表名>(“字段名1=>值1”,“字段名2=>值2” ...)的方式插入数据

这里使用SFDatabase.Query<表名>(“要查询的字段名”,“条件字段名1=>条件值”...)的方式查询字段

当然查询功能上SF还封装了更多自定义的方法,提供对 like, join, group by, having , order by ,limit 常用功能的简单支持。


好,最后运行一下


测试一下写入

C#使用SF框架 5分钟搭建Web API服务端

OK


再测试一下查询

C#使用SF框架 5分钟搭建Web API服务端

OK


今天的教程就到这里


最后说一下免费个人版和企业版的不用在于对高并发的优化上,以及极少数特殊功能的方法上,例如企业版的ORM模块在数据表结构变动的情况下会保持数据不变而改动表结构,免费版的则会备份原表然后重制一张空的新表,对于了解SQL的人来说完全可以手动做到企业版的功能,其他的付费版独有的特殊方法也是一样。


注册方法:

注册方式是程序运行时会自动生成一个***,除了控制台也会在程序的路径下生成一个包含***的md文件,把***拿到官方,购买后得到**码,写入sf.config配置文件,启动即可。