发表日期: 2021-05-27 16:26:26 浏览次数:123
武威网站建设【武威网络公司】武威做网站、武威微信公众号开发、武威网站设计、武威小程序制作

武威,简称“凉”,古称凉州、姑臧,是甘肃省辖地级市,甘肃省人民政府批复确定的丝绸之路经济带甘肃段重要节点城市、国家历史文化名城,河西走廊中心城市。截至2019年,辖1个区、2个县、1个自治县,总面积3.23万平方公里,常住人口182.5万人,城镇人口79.05万人,聚居着汉、藏、回、蒙等38个民族。 [1] [87]
武威地处中国西北地区,甘肃省中部,河西走廊东端,东接兰州、南靠西宁、北临银川和内蒙古、西通新疆,是国务院命名的对外开放城市、甘肃省确定的区域中心城市、西部重要的交通隘口城市。武威名胜古迹众多,自然景观与历史文化交相辉映,先后被命名为国家历史文化名城、中国优秀旅游城市和中国葡萄酒城。
武威历史悠久,早在四、五千年前,就有戎、崔、月氏、乌孙等北方民族聚族而居。自汉武帝派骠骑将军霍去病远征河西,击败匈奴,彰显大汉帝国的“武功军威”命名武威,已有近2200多年的历史。因武威地处古丝绸之路要冲,是古代中原与西域的经济枢纽,中原文化和西域文化的融汇传播之地,丝绸之路西段的要隘,中外商人云集的都会,历代王朝都曾在武威设郡置府。 [2-7]
2014年,武威保税物流中心获国家部委联合批准设立的正式批复,成为甘肃省第一个海关特殊监管区;同年12月,由武威开出的首列中欧班列“天马号”开通运营;2016年,甘肃省委、省政府决定举全省之力建设甘肃(武威)国际陆港,标志着甘肃(武威)国际陆港建设上升到全省对外开放和发展外向型经济的战略层面。
$ ./Public/shop/cli --service Goods.Snapshot --id 1
又如,调用评论接口更新评论ID为1的内容时,需要添加--id 1和--content "通过CLI 提供的评论内容"这两个参数。
$ ./Public/shop/cli --service Comment.Update --id 1 --content "通过CLI 提供的评论内容"
当参数存在空格时,可以像上面这样使用双引号。
再一次,可以看到,接口服务开发好后,通过使用扩展,可轻松切换成其他形式的访问,例如RESTful风格、phprpc协议、CLI命令行等。
命令行项目还有一个颇为有趣功能,那就是常用的帮助信息。当指定接口服务后,若需要查询需要哪些接口参数,可以使用--help查看帮助信息,即查看接口参数说明。
例如,对于获取商品快照信息的Goods.Snapshot服务,若需要查看其接口参数有哪些,可以这样:
$ ./Public/shop/cli -s Goods.Snapshot --helpUsage: ./Public/shop/cli [options] [operands] Options: -s, --service <arg> 接口服务 -h, --help 查看帮助信息 --id <arg> 商品ID
这里的使用说明,会根据配置的接口参数规则自动生成。
让我们来把前面更新评论的接口服务参数规则再完善一下,补充参数说明,并添加一个带有默认值非必须的author参数。
// $ vim ./Shop/Api/Comment.phpclass Api_Comment extends PhalApi_Api { public function getRules() { return array( 'update' => array( 'id' => array('name' => 'id', 'type' => 'int', 'require' => true, 'desc' => '评论ID'), 'content' => array('name' => 'content', 'require' => true, 'desc' => '待更新的评论内容'), 'author' => array('name' => 'author', 'default' => 'nobody', 'desc' => '评论作者'),
),
... ...再次查看帮助,可以看到相应更新了。
$ ./Public/shop/cli -s Comment.Update --helpUsage: ./Public/shop/cli [options] [operands] Options: -s, --service <arg> 接口服务 -h, --help 查看帮助信息 --id <arg> 评论ID --content <arg> 待更新的评论内容 --author [<arg>] 评论作者
虽然这里只是介绍了四种超越HTTP/HTTPS协议的方式,但显然还有其他更多的超越方式,比如使用socket进行通信。鉴于篇幅问题,在这不再展开介绍,感兴趣的读者,可以参考上面的方式进行扩展延伸。
这里简单对前面介绍的几种协议方式,进行小结和比较。
表3-10 各种协议/方式的对比
协议/方式 | 访问方式 | 参数传递 | 结果返回 | 备注 |
|---|---|---|---|---|
RESTful API | 依然通过HTTP方式访问,并兼容原来的访问方式 | 增加通过路由规则匹配参数的获取方式 | 保持不变 | |
PHPRPC协议 | 需要提供新的访问入口,通过phprpc协议访问 | POST参数需要JSON编码后再传递 | 返回源数据,非序列化字符串 | |
SOAP协议 | 需要提供新的访问入口,通过SOAP协议访问 | POST参数需要JSON编码后再传递 | 返回源数据,非序列化字符串 | 需要开启--enable-soap |
CLI命令行 | 需要提供新的命令行入口 | 使用命令行参数传递 | 保持不变 | 不支持COOKIE、SESSION等操作 |
本章所介绍的都是实用的内容,通过依赖注入,可以有效地控制、管理和维护后端的服务资源。DI在PhalApi中扮演着“一等公民”的角色,处在不可或缺重要的战略位置。当需要使用DI时,你可以通过set/get方法、setter/getter访问器、类成员属性、数组形式进行操作,且初始化的途径有:直接赋值、类名延迟加载、匿名函数延迟加载。开发-配置-使用模式体现了“一次开发,多次使用”的思想,也是架构明显的编程风格,通过DI把创建和使用分离。对于功能更为复杂,接口更为丰富的模块,则可以封装在扩展类库中。