.jpg)
本文目录
如何使用SDK开发站点
SDK目录结构
如果您是通过网盘下载SDK的zip包,需要自行安装JRE并且解压。SDK的基本目录结构:
bin目录:管理工具启动脚本程序。Windows操作系统,启动NewStartServer.bat或者StartServer.bat。非Windows操作系统,启动startServer.sh。特别提醒,确保操作系统中使用最新的JRE6以上版本
conf目录:SDK服务器的配置文件,请不要随意修改
db目录:存放SDK本地数据库文件,请不要随意修改
lib目录:SDK服务器依赖的类库文件,请不要随意修改
sdk_open_api.php文件:SDK支持的开放API接口,属于数据开放接口,TAE应用也可以使用
tae_open_api.php文件:TAE支持的开放API接口,为TAE提供基础服务,作为sdk_open_api.php的补充
topclient.php文件:淘宝开放平台(TOP)的服务调用接口
启动SDK工具
根据具体操作系统,启动bin目录中的启动脚本。本例中使用的Windows操作系统运行的结果:
SDK将会自动启动用户偏好的浏览器:
注意:服务器端口,与后面的访问的时候的端口保持一致。
当前SDK工具没有提供TAEAPP的应用管理页面,而是需要开发者手动绑定开发。接下来具体介绍如何开发TAE应用。
成功启动后,目录结构会发生变化:
不难发现,apps目录被自动创建了,该目录就是管理TAE应用的目录。
目录结构及配置
首先,使用投票应用voteapp为例,其目录结构如下图:
从上图中,可以初步了解一个应用APP的目录基本结构,接下来,详细详细介绍各个目录的作用以及规范。
静态资源目录:assets目录,包括js、css和图片文件。图片文件均存放在imagse子目录中,页面渲染样式CSS文件都存放在stylesheets目录中,而Javascripts目录则是管理JavaScript脚本文件。后面的章节会具体介绍如何访问这些资源文件。
数据库访问目录:dao目录的文件复制数据库访问和sql的封装。例如上图中dbconfig.php则利用PHP的PDO技术,管理配置数据库数据源,即PDO对象。其他的vote_xxx_dao.php则是数据库访问对象(DAO)的封装。
应用服务目录:service目录管理封装了相关的应用相关的核心业务逻辑PHP页面。所谓的服务,就是为视图页面提供服务调用的接口,实现业务逻辑,减少代码耦合度。
视图文件目录:view目录是web层,负责页面的布局、内容的展现和请求跳转控制,taeweb层的使用smarty模板引擎,tae自己实现了url的控制和映射,具体使用见配置文件。
app.yml是应用的配置文件,demo中具体的目录可以通过配置文件统一配置,具体配置项见下文。
根目录下app.yaml文件定义了该应用的具体组成部分,具体介绍如下:
!!com.taobao.tae.config.domain.Config
#应用元信息
title:voteapp
description:投票应用新的结构
version:1.0
language:php
author:shihong
thumbnail:/aaa.jpg
#type:1tae模块2独立站点
type:2
#全局css的配置
css:/assets/stylesheets/g.css
#首页通过域名直接访问的页面如test.uz.taobao.com访问时的页面
index:/view/front/view.php
#http请求配置
urls:
#前端页面
#url配置的是短域名,配置后可以访问/view/front/view.php相当于是/d/index
-{handler:/view/front/view.php,url:/index}
-{handler:/view/front/report.php,url:/report}
-{handler:/view/front/report_jsonp.php,url:/reportJsonp}
#卖家管理页面
-{handler:/view/admin/admin.php,url:/admin}
-{handler:/view/admin/itemlist.php,url:/itemlist}
-{handler:/view/admin/infolist.php,url:/infolist}
-{handler:/view/admin/vote_item_action.php,url:/voteItemAction}
#安全和权限配置
#这个是前缀规则,url代表请求相对路径的前缀。
#role代表安全级别,anonymous是任何用户都可以访问,
#developer是站点所有者才能访问,
#shopcustomer是表示登录用户可以访问
security:
-{url:/view/front,role:anonymous}#表示/view/front下面的所有页面是所有用户都可以访问
-{url:/view/admin,role:developer}#表示/view/front下面的所有页面是站点所有者才能访问
-{url:/,role:anonymous}
开发简单TAE应用
首先,让应用开发人员更直观的了解TAE应用开发,引入一个HelloWorld应用工程来学习。
第一步:创建名为”hello_world”目录
第二步:建立应用的配置文件:app.yml
第三步:编写应用配置文件内容(app.yml)
!!com.taobao.tae.config.domain.Config
#应用元信息:用于
#应用名称标题
title:HelloWorld
#应用描述信息
description:HelloWorldTAE应用的DEMO
#应用使用的语言,暂时支持PHP语言
language:php
#应用的作者
author:tae
#应用展示缩略图
thumbnail:/assets/images/default-thumbnail.php
#type:1tae模块2独立站点
type:2
#全局css的配置#目前一个应用只能有一个css文件
css:/assets/stylesheets/default.css
#首页/index的配置,详见下面的urls中的handler配置
index:/view.php
#http请求配置
urls:
#前端页面,相对于应用根目录
#以下几种请求访问方式URI均可:
#URI:/需要进行index的配置
#URI:/d/index
#URI:/view.php
-{handler:/view.php,url:/index}
第四步:编写首页PHP文件(view.php)
在hello_world应用目录中,新建一个名为view.php文件。
请注意:页面PHP文件是上一步中app.yml配置关联的。非配置的PHP文件无法执行
前端sdk封装(node)
场景:
在实际开发中,需要将后端接口封装成sdk,可供前端直接调用,接口可实现页面跳转等
实际运用:
实际开发中,前端项目时基于node的项目,需要重新封装一层后端接口,并实现页面的可配置化跳转。
实际调试中,注意node版本,版本不同,差异很大。我本地试的v8.9.4版本
1.node中获取请求参数两种方式:
req.body获取post请求参数,req.query获取get请求参数,req.params获取get请求参数,url中直接拼接参数的那种,如http://localhost:8080/1
req.params["id"]获取的就是1
2.sdk提供post和get两种方式,需要校验origin&referer
其中origin是post方式独有的,origin显示页面的来源,包含协议和domain(根域地址),不包含具体的路径地址,不会包含用户的敏感信息,相比referer更安全,可防止CSRF攻击,一般存在于CORS跨域的请求中,response中可查看到Access-Control-Allow-Origin
referer存在于get和post请求中,告知服务请求方的原始资源的URI,包括协议+根域+参数,因为参数可能包含些敏感信息,可能会导致信息泄露
因此在模拟测试post请求时,而且需要origin时,并且需要测试页面跳转时,可模拟表单请求的方式来进行测试
在模拟get请求时可通过a标签,设置好href为调用地址即可
3.因为是登录的场景,需要写入登录状态,而且涉及到B端账户和C端账户的关联关系,因此需要将登录态写入到cookie中,而且因为有页面的跳转,因此要做到cookie的跨域传递(一般是根域情况下,默认跳转的时候自动传递过去)
node在设置cookie的时候可通过以下方式来设置:
单个cookie:
res.setHeader("set-cookie",`aticket=${aticket};path=/;HttpOnly;Domain=${domain};expires=${expires};`)
多个cookie设置:
res.setHeader("set-cookie",[`aticket=${aticket};path=/;HttpOnly;Domain=${domain};expires=${expires1};`,`bticket=${bticket};path=/;HttpOnly;Domain=${domain};expires=${expires2}`])
默认在跳转的时候,根域相同的情况下,cookie是可以传递过去的。如果是不同的根域,就需要自己写一层代理,将cookie写入到目标域中即可。
4.跳转的时候url设置时,需将url通过encodeURIComponent进行编码,然后通过decodeURIComponent即可
sdk是前端还是后端
客户端SDK(英文全称:SoftwareDevelopmentKit),它是为第三方开发者提供的软件工具包。软件开发工具包,一般是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
现实工作环境中,SDK更多的是(SecondDevelopmentKit)二次开发工具包,这类SDK其实就是把要单独接入的应用的功能从应用中剥离出来,可以提供给所有其它应用使用的公共组件,还能在此基础上进行重构和迭代,降低工作的复杂度、节约了成本。
这次小编对前端sdk开发,前端sdk开发方向的讲解希望对大家有所提升,有喜欢的朋友欢迎转发,小编先干为谢。
发表评论 取消回复