本文目录

  1. 如何使用SDK开发站点
  2. 前端sdk封装(node)
  3. sdk是前端还是后端

如何使用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开发方向的讲解希望对大家有所提升,有喜欢的朋友欢迎转发,小编先干为谢。

点赞(4)

猜你喜欢

相关推荐

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部