pb开发web应用

说到pb开发web,一般是将pb发布成webservice,或者转成webform,两者都有很多限制,比如需要iis安装维护麻烦,调试困难,经常遇到莫名的错误,找不到资料,样式调整困难等问题。

随着互联网技术的发展和APP的流行,WEB前端和APP开发,越来越流行。要为前端和APP提供服务需要开发web应用,如果能为熟悉的工具进行开发,可以大大节省开发时间,减少学习成本。SATRDA的插件支持通过PB编写服务端代码,实现服务端的WebApi,支持H5,微信公众号和小程序等,并且支持PB IDE中断点调试代码

        插件使用非常简单,配置完成后插件就可以以多线程高效执行了。

1. 配置插件
下载SatRDA,运行satserver,浏览器输入http://127.0.0.1:5555/admin 账号和密码都输入satrda 登录到后台管理。可以进入后台管理配置插件

后台管理界面点击插件管理 

后台管理

 点击添加项目 

添加项目

 各参数可以看输入框提示,各语言插件可以看具体语言插件类型

pb插件可以配置如下: 

pluginpb

 参数说明:

数据说明
"Dir": "test"表示插件的目录,所有插件都在plugins目录下面,这里值为”test”代表插件在plugins目录下的test目录
"Method":"Get;Post"表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/pbtest/**"表示响应以http://ip:port/pbtest开头的url。这里"/pbtest/**"可以响应http://127.0.0.1:5555/pbtest/test.go,也可以响应http://127.0.0.1:5555/pbtest/tttt.go等。如果设置为"URL": "/pbtest/test.go"则只响应http://127.0.0.1:5555/pbtest/test.go,可以配置多个url,多个url以;分隔
"Type": "pb"表示调用PB插件
"DLL": "pbvm90.dll"表示pb运行库的dll名称,这里是pb9的运行库,其它版本请自行设置。比如12.5运行库设置为"DLL": "pbvm125.dll"
"AppName":"plugin"表示pb的application的名称,一定要和创建的pb的名称对应起来

PB插件示例

加群下载satrda最新版本,打开pb示例,plugin应用里面就是pb示例

 当客户端或者网页的http请求到来时会进入到satrda_service方法中,可以在该方法中响应http请求。

satrda_service方法

/*
 *	客户端请求服务器,会首先调用到该函数
 *  @as_url  url地址,如果是task调用,这里是设置的key
 *  @al_context http上下文,用于http相关操作,如果是task,此值为0
 */
 
 n_wx ln_wx
 if not isvalid(gn_srv) then
 	//gn_srv = create using "n_wx"
	gn_srv = create using "n_app"
end if	 
 
 
 if al_context = 0 then
	if as_url = "wx_init" then
		n_api.of_writeLog(n_api.log_debug,"wx_init")
		ln_wx = gn_srv
		ln_wx.of_createmenu( )
	end if
else
	gn_srv.of_init( al_context)
   gn_srv.of_service(as_url)
 end if

这里创建了n_app对象,然后调用n_app对象的of_service方法。http方法响应都写到n_app中去了,n_app实现了一个简单的web应用,包括用户登录、查询、编辑等。

我们来看下登录接口,获取Http请求的数据,并返回Json结果的例子

string ls_account,ls_pwd,ls_token,ls_json
long ll_count
ulong ll_session

ls_account = n_api.JsonObject_GetString(il_param,"account")
ls_pwd = n_api.JsonObject_GetString(il_param,"password")

//判断是否存在,不存在,则创建并返回成功
select count(0) into :ll_count from input_user where account = :ls_account; 
if ll_count = 0 then
	insert into input_user(account,pwd) values(:ls_account,:ls_pwd);
	commit;
	ll_count = 1
else
	select count(0) into :ll_count from input_user where account = :ls_account and pwd = :ls_pwd;
end if


if ll_count > 0 then
	//生成session并存入
	 ll_session = n_api.SessionStart(il_context)
	if ll_session <> 0 then
		n_api.SessionSet(ll_session,"user",ls_account)
		ls_token = n_api.of_sessionid( ll_session)
	end if
	
	ls_json = '{"success": true,"token":"' + ls_token + '","msg:":"成功"}'
else
	ls_json = '{"success": false,"msg:":"用户名或密码不正确"}'
end if

n_api.of_writejson( il_context, ls_json)

其中最简单的Http返回Json数据如下,非常简单。

ls_json = '{"success": false,"msg:":"用户名或密码不正确"}'
n_api.of_writejson( il_context, ls_json)

PB断点调试服务端代码

开发人员都知道断点调试的重要性,可以节省很多找错误的时间。satrda支持断点调试。

pb中打开plugin应用,在需要的地方下好断点,IDE中运行调试,出现下面窗口

 点击开始调试

通过postman或者网页输入 http://127.0.0.1:5555/pbtest/api/login,可以进入如下断点:

可以一步步进行调试了。 


下载地址:
最新版本下载,交流请到QQ群:345559891 

  • 1
    点赞
  • 8
    收藏
  • 打赏
    打赏
  • 2
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

pcwe2002

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值