## 大作业:Mashup API 分析
2201210512 曾远昊
### Gitee 地址
https://gitee.com/zengyuanhao/finance-python
### 数据来源
https://github.com/HIT-ICES/Correted-ProgrammableWeb-dataset
`api_nodes_estimator.csv`:API 信息
`m-a_edges.csv`:Mashup API 关联信息
`mashup_nodes_estimator.csv`:Mashup 信息
### 代码运行方式
使用 Pycharm 运行 main.py 或使用命令行
```shell
python3 main.py
```
即可在 terminal 得到输出结果,如图
![1](./img/1.png)
### 1. 统计 Web API 个数
#### 1) 统计 Mashup 中的包含 Web API 个数
原数据中的 Mashup 包含一些不可用的和一些没有与 API 相关联的数据,将这些数据排除之后,可得到实际的 Web API 个数为 **12592** 个
#### 2) Web API 被使用的次数
根据 Mashup 名称查找 API 并根据 API 地址统计使用次数,可得部分结果如下(详细结果请见`./res/api_use_cnt.csv`)
```text
API 地址 使用次数
/api/google-maps 1983
/api/twitter 670
/api/youtube 562
/api/flickr 473
/api/facebook 381
/api/twilio 309
/api/amazon-product-advertising 304
/api/lastfm 181
/api/ebay 173
/api/twilio-sms 155
```
#### 3) Web API 提供商发布的 API 个数
将 API 地址中最靠前的部分视为 Web API 提供商名(例如:`/api/google-maps`的提供商即为 google),根据 1) 中得到的有效 API 统计出各提供商发布的 API 个数如下(详细结果见`./res/api_provider_cnt.csv`)
```text
供应商名称 提供 API 个数
google 3327
twitter 685
youtube 562
yahoo 513
amazon 508
flickr 473
facebook 466
twilio 464
ebay 193
lastfm 181
microsoft 155
```
### 2. 分析关联情况
从需求关键词视角,分析在不同类别中, Mashup 与 API 的关联情况
由于 Mashup 包含多个 API,且两者均有类别标签,因此通过统计各标签包含的 API 个数,并与实际调用到的个数比对,即可得到在不同类别中 API 的调用率,结果如下(详细结果见`./res/category_use_rate.csv`)
```text
API 类别 该类别 Mashup 调用的 API 个数 该类别 API 总数 该类别 API 在 Mashup 中的实际使用率
Purchasing 1 1 100.0%
None 18 59 30.51%
Bookmarks 13 44 29.55%
Blogging 21 77 27.27%
Personal Information Management 11 44 25.0%
Tagging 1 4 25.0%
Wiki 5 21 23.81%
Other 47 204 23.04%
Widgets 8 37 21.62%
```
可利用 Matplotlib 库选出使用率靠前的结果绘制条形图如下
![category_rate](./img/category_rate.png)
### 3. Web API 参与服务情况统计
从非功能视角分析相同标注下 Web API 参与服务组合情况统计
根据 API 的类型(REST, RPC 等等)统计对于同一个 Mashup 有几种不同类型的 API 组合,并将组合出现的次数排序,可得到结果如下(`./res/api_type_rate.csv`):
```text
API 类型组合 出现次数 出现次数占比
NORMAL 6062 99.97%
REST + NORMAL 2 0.03%
```
可以看出,虽然 API 数据集里面有以下几种类型
- NORMAL(即未特别标注)
- REST
- RPC
- gRPC
- JSON-RPC
- XML-RPC
但不同类型 API 混合使用的情况并不常见,使用 Matplotlib 绘制饼状图如下:
![type_rate](./img/type_rate.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
面向金融的Python课程大作业,Mashup API 分析源代码+数据 数据来源 https://github.com/HIT-ICES/Correted-ProgrammableWeb-dataset api_nodes_estimator.csv:API 信息 m-a_edges.csv:Mashup API 关联信息 mashup_nodes_estimator.csv:Mashup 信息 代码运行方式 使用 Pycharm 运行 main.py 或使用命令行 python3 main.py
资源推荐
资源详情
资源评论
收起资源包目录
finance-python-main.zip (19个子文件)
finance-python-main
input.py 2KB
main.py 2KB
data
api_nodes_estimator.csv 2.58MB
m-a_edges.csv 513KB
mashup_nodes_estimator.csv 877KB
res
category_use_rate.csv 9KB
api_provider_cnt.csv 13KB
1.jpg 45KB
api_type_rate.csv 90B
api_use_cnt.csv 30KB
output.py 3KB
graph.py 916B
img
type_rate.png 34KB
category_rate.png 53KB
1.png 31KB
gen.py 2KB
Python课程报告.docx 135KB
.gitignore 2KB
README.md 3KB
共 19 条
- 1
资源评论
程序员柳
- 粉丝: 6362
- 资源: 1373
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功