1. 背景介绍
1.1 工作环境, 查看
1.2 技术情况
1.3 前端技术,查看
1.4 使用aws云服务器
| AWS服务 |
运用 |
| Amazon Elastic Compute Cloud(Amazon EC2) |
对于网络和应用服务 |
| Amazon Simple Queue Service(Amazon SQS) |
执行批处理的Kenshoo执行程序服务器 |
| Amazon Simple Email Services(Amazon SES) |
主要的SMTP服务 |
| Amazon Elastic MapReduce(Amazon EMR) |
生成内部报告 |
| Amazon Simple Notification Service(Amazon SNS) |
作为每天收到的数百个通知的通知服务 |
| Amazon RDS MySql 5.6 |
作为主要数据库 |
| Amazon DynamoDB |
每天可以看到数以千万计的事件,数以亿计的事件。对于AWS服务监控和自定义度量使用 |
| Amazon Simple Storage Service(Amazon S3) |
存储日志数据数据,如ETL跟踪日志 |
2. 后端接口分析
2.1 接口协议
- 使用的http协议,主要使用GET,POST的方式
2.2 数据格式采用json
https://social.kenshoo.com/services/grid/data
{
"columns":[
299,
300,
],
"filterContainer":{
"filterValues":[
{
"values":[
"ACTIVE",
"PAUSED",
"ARCHIVED"
],
"columnConfigurationKey":293,
"comparisonOperation":"EQUALS",
"displayValues":null
}
]
},
"adStatusFilter":[
],
"accountIds":[
130543701,
130543702
],
"dataRequestScope":"GRID",
"exportJob":false,
"advertiserId":130613200,
"startDate":1504051200000,
"endDate":1504137599999,
"customStartDate":"30-08-2017",
"customEndDate":"30-08-2017",
"dateSelectorValue":"YESTERDAY",
"gridId":"campaignsGroupsGrid",
"masterId":126139650,
"email":"pan.shu@mobvista.com",
"uniqueGridLoadingProcessId":"1504169438372",
"limit":100,
"page":1,
"start":0,
"sort":"298",
"dir":"DESC"
}
{
"success":true,
"message":null,
"total":null,
"data":{
"gridData":[
{
"207":"0",
"291":"app_test_OS-_test",
"292":"130531806",
"293":"ACTIVE",
"294":"SYNCED",
"295":"0",
"296":"0",
"297":"0",
"298":"0",
"299":"0",
"300":"0",
"301":"2017-08-17 17:41:05.0",
"302":"6083243700903",
"469":null,
"706":"0",
"740":"20",
"873":"0",
"adtype":"MAI",
"time_zone_offset":"0",
"account_currency_offset":"100",
"currency":"$",
"key_failed_sync_reason":""
}
],
"totalCount":65,
"gridPollingId":null,
"uniqueGridLoadingProcessId":"1504169438372",
"compositeStatus":"SUCCESS",
"fetchErrorStatusKey":null,
"totalData":[
{
"dataIndex":"grid_rows_count",
"value":"65"
},
{
"dataIndex":"299",
"value":"0"
}
],
"cachedTimePeriod":0,
"columnConfigurationData":[
{
"id":291,
"orderDefault":"ASC",
"columnAttribution":"DEFAULT"
},
{
"id":292,
"orderDefault":"DESC",
"columnAttribution":"DEFAULT"
},
{
"id":706,
"orderDefault":"DESC",
"columnAttribution":"DEFAULT"
}
]
},
"jobProcessingId":-1
}
2.3 异步处理
https://social.kenshoo.com/services/sync/campaigns?email=pan.shu@mobvista.com&advertiser=130613200
["130551821"]
{
"success":true,
"message":null,
"total":null,
"data":{
"jobId":87030784,
"totalCount":1
},
"jobProcessingId":-1
}
https://social.kenshoo.com/services/sync/status
{
"success":true,
"message":null,
"total":null,
"data":[
{
"id":130551821,
"syncState":"IN_PROGRESS",
"syncedObjectData":null
},
{
"id":130592572,
"syncState":"IN_PROGRESS",
"syncedObjectData":null
}
],
"jobProcessingId":-1
}
{
"success":true,
"message":null,
"total":null,
"data":[
{
"id":130551821,
"syncState":"SYNCED",
"syncedObjectData":{
"not_synced_ads":0,
"campaignLastSyncTime":1504175012000,
"campaignStatus":"PAUSED",
"campaignIdInTarget":"6083967478303"
}
}
],
"jobProcessingId":-1
}
https://social.kenshoo.com/advertiser/session?advertiserId=130613200
{
"data":[
"PROD_AA_SEND_EMAIL",
"PROD_DISABLE_S3_HEALTHCHECK",
"PROD_DPA_TRACKING",
"QA_DO_NOT_USE_CACHED_PORTFOLIO_GRAPH_VALUES"
],
"success":true,
"message":null
}
https://social.kenshoo.com/services/componentCounter/log
{
"username":"pan.shu@mobvista.com",
"masterId":126139650,
"masterName":"Mobvista",
"advertiserId":130613200,
"advertiserName":"Game Dreamer",
"loginDate":1504169423539,
"userDataLength":32082,
"periodicUserMetrics":[
{
"timestamp":1504173623782,
"value":356
},
{
"timestamp":1504175423362,
"value":498
}
]
}
2.4 接口特性
- 基本上有都有自增长ID, 而不是使用FB 对象ID, 而我们的系统很多展示的地方使用FB对象的ID
["130618757","130617558","130616627","130617591","130616976","130592637","130618500","130617795","130613587","130617828","130613576","130551821","130592572","130551823","130613723"]
- 所有的请求FB接口都封装了,暂没有看到直接访问FB的接口
- 所有的列表数据的请求都是使用统一的接口,支持参数不一致。 而gridId表示接口的方法
social.kenshoo.com/services/gr…
"gridId":"analysisGrid"
- 经常会有一些定时轮询的接口,如检查session, status,上报日志
https://social.kenshoo.com/services/grid/data/execution?executionTime=1202
https://social.kenshoo.com/advertiser/session?advertiserId=130613200
https://social.kenshoo.com/services/componentCounter/log
4. 参考资料