发表日期: 2021-03-27 12:49:25 浏览次数:127
资兴网站优化【资兴开通400电话】资兴网站搭建、资兴微信公众号推文外包、资兴开通京东拼多多设计、资兴淘宝装修
资兴市,湖南省辖县级市,由郴州市代管,位于湖南省东南部。因唐代旧县治位于资兴江畔(今东江湖)而得名,是郴商的发源地之一。资兴市地处湘江流域耒水的上游,在罗霄山脉西麓、茶永盆地南端,为湘、粤、赣三省交汇处。东邻桂东县、株洲市炎陵县,南接汝城县、宜章县,西连苏仙区,北抵永兴、安仁县。总面积2746.79平方公里。 [1]
2017年,资兴市实现地区生产总值362.51亿元,按可比价格计算,增长8.3%。其中,第一产业增加值26.95亿元,增长4.2%;第二产业增加值223.59亿元,增长6.9%;第三产业增加值111.97亿元,增长12.5%。三次产业结构为7.4:61.7:30.9。 [2] 资兴市名优特产主要有杨梅、东江鱼、狗脑贡茶等;风景名胜主要有东江湖、寿佛寺、回龙山等。资兴市下辖2乡9镇2街道;户籍总人口37.85万人,常住人口34.97万人(2017年)。2017年10月,被住建部命名为国家园林城市。2018年11月,被科技部确定为首批创新型县(市), [3] 入选中国县级市全面小康指数前100名。第三批“绿水青山就是金山银山”实践创新基地。 [4]
2019年3月6日,中央宣传部、财政部、文化和旅游部、国家文物局《中央宣传部 财政部 文化和旅游部 国家文物局关于公布《革命文物保护利用片区分县名单(第一批)》的通知》资兴市名列其中。 [5]
2020年6月,经中央依法治国委入选为第一批全国法治政府建设示范地区和项目名单。 [6] 2020年度真抓实干成效明显,被湖南省人民政府公布为推动高质量发展成效明显的县市区,给予100万元标准奖励。
我发现,我越是努力,就越发幸运。——Thomas Jefferson
娴熟的技艺离不开过硬扎实的基础。这一章,我们将开始学习PhalApi框架中的基础内容,包括作为客户端如何请求接口服务,作为服务端如何返回接口结果,ADM模式的含义和依赖关系,以及其他常用的基础功能。为避免内容空洞,我们会尽量结合前面的商城项目示例,进行基础内容的讲解。读者可以在边学习的过程中,边实践操作,加深理解。
在每个小节中,我们会先学习一些基本的使用,以便能满足普遍项目开发的技术需要。对于容易误解、容易出错的地方,我们会进行温馨提示,列出注意事项以及提供正确的解决方案。在每个小节的最后,我们还会再进一步,学习如何扩展项目的能力,定制自己的功能。
PhalApi默认使用的是HTTP/HTTPS协议进行通讯,请求接口的完整URL格式则是:
接口域名 + 入口路径 + ?service=Class.Action + [接口参数]复制代码
其中有应该单独部署的接口域名,不同项目各自的入口路径,统一约定的service参数,以及可选的接口参数。下面分别进行说明。
通常,我们建议对于接口服务系统,应该单独部署一个接口域名,而不应与其他传统的Web应用系统或者管理后台混合在一起,以便分开维护。
假设我们已经有一个站点,其域名为:www.demo.com,现需要为开发一套接口服务提供给移动App使用。直接在已有站点下添加一个入口以提供服务的做法是不推荐的,即不建议接口URI是:www.demo.com/api。推荐的做法是,单独配置部署一个新的接口域名,如:api.demo.com。当前,我们也可以发现很多公司都提供了这样独立的接口平台。例如:
优酷开放平台:https://openapi.youku.com
微信公众号: https://api.weixin.qq.com
新浪微博: https://api.weibo.com
如第1章中,我们创建的接口项目,其域名为:api.phalapi.net。
入口路径是相对路径,不同的项目可以使用不同的入口。通常在这里,我们会在部署接口项目时,会把项目对外可访问的根目录设置到./Public目录。这里所说的入口路径都是相对这个./Public目录而言的。与此同时,默认使用省略index.php的路径写法。
为了更好地理解这样的对应关系,以下是一些示例对应关系。
表2-1 入口路径示例对应关系
项目 | 精简的入口路径 | 完整的入口路径 | 入口文件位置 | 项目源代码位置 |
|---|---|---|---|---|
默认的演示项目 | /demo | /Public/demo/index.php | ./Public/demo/index.php | ./Demo |
新建的商城项目 | /shop | /Public/shop/index.php | ./Public/shop/index.php | ./Shop |
如框架自带的演示项目,其目录是:./Public/demo,对应的访问入口路径是:api.phalapi.net/demo;而新建的商城Shop项目的目录是:./Public/shop,则入口路径是:api.phalapi.net/shop。
这个入口路径是可选的,也可以直接使用根目录。如果是这样,则需要调整./Public/index.php目录,并且不便于多项目并存的情况。
在PhalApi中,我们统一约定使用service参数来指定所请求的接口服务。通常情况下,此参数使用GET方式传递,即使用$_GET['service'],其格式为:?service=Class.Action。其中Class是对应请求的接口剔除Api_前缀后的类名,Action则是待执行的接口类中的方法名。
温馨提示:未指定service参数时,默认使用
?service=Default.Index。
如请求默认的接口服务可用?service=Default.Index,则相应会调用Api_Default::Index()这一接口服务;若请求的是?service=Welcome.Say,则会调用Api_Welcome::Say这一接口服务。
以下是一些示例。
请求默认接口服务,省略service
http://api.phalapi.net/shop/复制代码
等效于请求默认接口服务
http://api.phalapi.net/shop/?service=Default.Index复制代码
请求Hello World接口服务
http://api.phalapi.net/shop/?service=Welcome.Say复制代码
接口参数是可选的,根据不同的接口服务所约定的参数进行传递。可以是GET参数,POST参数,或者多媒体数据。未定制的情况下,PhalApi既支持GET参数又支持POST参数。
如使用GET方式传递username参数:
$ curl "http://api.phalapi.net/shop/?service=Default.Index&username=dogstar"复制代码
也可以用POST方式传递username参数:
$ curl -d "username=dogstar" "http://api.phalapi.net/shop/?service=Default.Index"复制代码
至此,我们已经基本了解如何对接口服务发起请求。接下来,让我们来看下对于接口服务至关重要的要素 —— 接口参数。
