自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天笑的博客

技术笔记,学习心得

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 筋斗云接口编程 / 会话管理

会话管理筋斗云使用cookie机制来维持与客户端的会话。 它默认使用的cookie名称是”userid”,但可以由客户端请求中URL参数_app来修改,比如_app=emp,则使用cookie名称为”empid”。 在筋斗云中,_app参数称为前端应用名,因而不同的应用即使同时在浏览器中打开也不会发生会话错乱和冲突。示例请求:GET /mysvc/api.php?_app=emp如果请求中没有

2017-03-21 12:04:43 568

原创 筋斗云接口编程 / 批量请求

批量请求筋斗云框架支持批量请求,即在一次请求中,包含多条接口调用。假设一个前端页面进入时,需要接连调用好多次接口才能完成展现,一般的做法是需要后端重新设计接口来优化。 筋斗云支持batch接口,这时后端不必做任何设计修改,前端只要调用batch接口即可获得优化。假如前端进入某页面,需要调用下面两个接口:获取用户信息User.get() -> {id, name, phone, ...}上传用户操

2017-03-21 12:04:12 575

原创 筋斗云接口编程 / 日志与调试

日志与调试输出日志可以用logit函数,将信息输出到后端文件中,默认存在服务目录下的trace.log文件中。logit("### debug info");除直接查看文件外,也可以在浏览器中访问 tool/log.php 页面来查看最近的日志。如果想输出到其它文件,可以在第二个参数中指定,如:logit("### debug info", "mydebug");这样调试信息则输出到mydebu

2017-03-21 12:03:19 573

原创 筋斗云接口编程 / 非标准对象接口

非标准对象接口对象的增删改查(add/set/get/query/del共5个)接口称为标准接口。 可以为对象增加其它非标准接口,例如取消订单接口:Ordr.cancel(id)应用逻辑- 权限: AUTH_USER- 用户只能操作自己的订单只要在相应的访问控制类中,添加名为api_{非标准接口名}的函数即可:class AC1_Ordr extends AccessControl{

2017-03-14 15:54:33 500

原创 筋斗云接口编程 / 接口返回前回调

接口返回前回调示例:添加订单到Ordr表时,自动添加一条”创建订单”日志到OrderLog表,可以这样实现:class AC1_Ordr extends AccessControl{ protected function onValidate() { if ($this->ac == "add") { ... $thi

2017-03-14 15:54:02 334

原创 筋斗云接口编程 / 虚拟表和视图

虚拟表和视图表ApiLog中有一个字段叫app,表示前端应用名:@ApiLog: id, tm, addr, app, userId- userId: 如果app=user,则关联到User表;如果app=emp,则关联到员工表Employee@Employee: id, name, phone, ...@User: id, ...当app=”emp”时,就表示是员工端应用的操作日志。 现在想

2017-03-14 15:53:30 488

原创 筋斗云接口编程 / 子表对象

子表对象前面提到过想在对象中返回子表时,可以使用压缩成一个字符串的子表字段,一般适合数据比较简单的场合。另一种方式是用$subobj来定义子表对象。例如在获取订单时,同时返回订单日志,设计接口如下:Ordr.get() -> {id, ..., @orderLog?}返回orderLog: {id, tm, dscr, action} 订单日志子表。示例{id: 1, dscr: "换轮胎及洗车"

2017-03-14 15:53:02 363

原创 筋斗云接口编程 / 虚拟字段(二)

计算字段在定义虚拟字段时,”res”也可以是一个计算值,或一个很复杂的子查询。例如表OrderItem是Ordr对象的一个子表,表示订单中每一项产品的名称、数量、价格:@Ordr: id, userId, status(2), amount, dscr(l)@OrderItem: id, orderId, name, qty, price一个订单对应多个产品项:OrderItem(orderId

2017-03-09 11:16:20 525

原创 筋斗云接口编程 / 虚拟字段

虚拟字段前面已经学习过怎样把一个数据库中的表作为对象暴露出去。 其中,表的字段就可直接映射为对象的属性。对于不在对象主表中定义的字段,统称为虚拟字段。通过$vcolDefs来定义虚拟字段,最简单的一类虚拟字段是字段别名,比如class AC1_Ordr extends AccessControl{ protected $vcolDefs = [ [ "res" => ["

2017-03-09 11:15:40 367

原创 筋斗云接口编程 / 分页机制

分页机制query操作默认支持分页(paging), 一般调用形式为Ordr.query(_pagekey?, _pagesz?=20) -> {nextkey?, total?, @h, @d}参数:- _pagesz: Integer. 页大小,默认为20条数据。- _pagekey: String (一般是数值). 首次查询不用填写(或填0),而下次查询时应根据上次调用时返回数据的"nex

2017-03-08 08:48:29 385

原创 筋斗云接口编程 / 对象型接口(四)

定制可访问数据除了限制用户可以访问哪些表和字段,还常会遇到一类需求是限制用户只能访问自己的数据。[任务]用户登录后,可以添加订单、查看自己的订单。 我们在设计文档中设计接口如下:添加订单Ordr.add()(amount) -> id查看订单Ordr.query() -> tbl(id, userId, status, amount)Ordr.get(id) -> { 同query接口字段.

2017-03-08 08:46:59 375

原创 筋斗云接口编程 / 对象型接口(三)

绑定访问控制类与权限前面在讲函数型接口时,提到权限检查用checkAuth函数来实现。 在对象型接口中,通过绑定访问控制类与权限,来实现不同角色通过不同的类来控制。比如前例中ApiLog对象接口允许员工登录(AUTH_EMP)后访问,只要定义:class AC2_ApiLog extends AccessControl{ ...}那么为什么AC2前缀对应员工权限呢? 在api.php

2017-03-08 08:46:11 391

原创 筋斗云接口编程 / 对象型接口(二)

定制操作类型和字段对象接口通过继承AccessControl类来实现,默认允许5个标准对象操作,可以改写属性$allowedAc来限定允许的操作:class AC_ApiLog extends AccessControl{ protected $allowedAc = ["get", "query"]; // 默认值为 ["add", "get", "set", "del", "q

2017-03-03 10:57:49 320

原创 筋斗云接口编程 / 对象型接口

对象型接口为了更好的理解之后章节的示例,我们先了解一下示例中用到的数据模型。[数据模型描述方式]下面是几个数据表,每个表都应有个作为主键的id字段,是可自动增长的整数类型,即使是关联表也应定义id字段作为主键。用户:@User: id, uname, phone(s), pwd, name(s), createTm订单:(用Ordr而不是Order词是避免与SQL关键字冲突。)@Ordr: id

2017-03-03 10:57:12 319

原创 筋斗云接口编程 / 常用操作(三)

数据库操作数据库连接一开始是通过tool/init.php在线配置的,或直接手改文件 php/conf.user.php 文件的相关配置如:putenv("P_DB=localhost/jdcloud");putenv("P_DBCRED=test:test123");如果想稍稍隐蔽一下登录账号,也可以用base64编码,如:putenv("P_DBCRED=ZGVtbzpkZW1vMTIz")

2017-03-02 08:38:26 549

原创 筋斗云接口编程 / 常用操作(二)

接口返回函数应返回符合接口原型中描述的对象,框架会将其转为最终的JSON字符串。比如登录接口要求返回{id, _isNew}:login(uname, pwd, _app?=user) -> {id, _isNew?}因而在api_login中,返回结构相符的对象即可:$ret = [ "id" => $id, "_isNew" => 1];return $ret;最终返回的

2017-03-02 08:38:00 472

原创 筋斗云接口编程 / 常用操作(一)

获取参数函数mparam用来取必传参数(m表示mandatory),参数既可以用URL参数,也可以用POST参数传递。如果是取一个可选参数,可以用param函数。 与直接用php的$_GET等变量相比,param/mparam可指定参数类型,如// 取id参数,特别地,对id参数会返回一个整数。$id = param("id"); // 请求参数为"id=3", 返回3, 不是字符串"3"//

2017-03-02 08:37:17 561

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-02 08:35:34 346

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-01 14:46:57 246

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-01 14:23:02 241

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-01 14:18:42 179

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-01 14:16:31 175

原创 筋斗云接口编程 / 函数型接口

如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}

2017-03-01 14:15:42 564

下载猎手(CacheHunt) - 浏览器缓存辅助工具

下载猎手(CacheHunt) 可以帮助您方便的从缓存中查找浏览过的音乐、铃声、视频、文档、程序等,特别值得一提的是为方便找到需要的文件可以直接预览(如播放常见的视频音频等)。当您在网上在线欣赏完内容后感到特别喜爱,希望下载下来而网站又未提供下载,就可以用本软件非常方便地找到它并另存到本地硬盘上。 本软件免费,免安装,直接运行,无任何捆绑插件。 如果你在在线视频网站上看到精彩的内容却苦于无法下载到本地,赶快点击下面的链接使用该软件吧!

2010-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除