Diablo3英雄榜-API分析

概述

暗黑3API 是暴雪提供的用来给游戏爱好者提供英雄和资料查询的工具。玩家可以在线下在社区应用中扩展游戏体验。

这篇文章是写在UI篇之后的,但是由于UI篇还没有完成。实际上我的流程是UI->逻辑->数据。在UI的过程中需要很多数据,设计到美观问题,尤其是装备这块。我打算先把装备这块的数据先分析出来。

角色档案

访问账户信息级别的信息需要使用角色档案API。这个档案通过一个HTTP GET request返回一个dataset。访问的方式如下:

battletag-name ::= <regional battletag allowed characters>

battletag-code ::= <integer>

url ::= <host> "/api/d3/profile/" <battletag-name> "-" <battletag-code> "/"

这里的battletag-name就是游戏里面的账号名称,battletag-code就是游戏里面跟随的#数字。比如:

http://tw.battle.net/api/d3/profile/kakyban-3879/

这里会得到账号下的游戏ID列表之类的数据。在这个例子里host为tw.battle.net。内容大概如下所示的Json内容:

HTTP/1.1200 OK

<http headers>

{"heroes": [{"name": "Yharr", "id": 1, ...}, ...], ...}

具体的可以直接访问我给出的例子。这都是真实的数据。

英雄档案

英雄档案就是所玩的角色的ID,比如说练了个法师,那么就是那个法师的档案。英雄档案API一次同伙一个HTTP GET请求获得一个英雄的资源文件。

battletag-name ::= <regional battletag allowed characters>

battletag-code ::= <integer>

hero-id ::= <integer>

url ::= <host> "/api/d3/profile/" <battletag-name> "-" <battletag-code> "/hero/" <hero-id>

这里的hero-id是上一级的json数据里的id。那么访问一个英雄的api大概如下:

http://tw.battle.net/api/d3/profile/kakyban-3879/hero/26135206

得到的json数据大概如下:

HTTP/1.1200 OK

<http headers>

{ "id" : 1, "name" : "Yharr", "class" : "barbarian", "gender" : 0, "level" : 54, "hardcore" : false, ... }

也就是说先要调用角色档案API得到账号下角色的id号,然后在通过id得到每个id的角色详细信息。角色的详细信息里面就包含了id,名称,职业,性别,等级,巅峰等级,装备列表,技能列表,追随者列表等。

装备详细信息

装备详细信息是通过调用items属性下的tooltipParams

url ::= <host> "/api/d3/data/item/" <item-data>

http://tw.battle.net/api/d3/data/item/CogBCIL4qLcOEgcIBBVToDKJHXKOHSEdOLLA1R2bBgDLHeZqMcAdZiMGUB2BgcbEMIsCOPYCQABQElgEYPYCaisKDAgAEM7b0OiFgIDAFhIbCMqDpcEMEgcIBBWFJ5SxMIsCOABAAVgEkAEAgAFGpQHmajHArQHmFdsNtQF_-U5duAGvr47ICcABIRjZ_ursDlACWACgAdn-6uwOoAGZgPvhDqAB5qDfkwagAbrehKsP

比如这样子,就是这个角色身上穿的头盔的API。得到大概下面的内容:

HTTP/1.1200 OK

<http headers>

{ "name": "Exsanguinating Chopsword of Assault", "icon": "mightyweapon1h_202", "displayColor": "blue", "requiredLevel": 60, "itemLevel": 61, "bonusAffixes": 0, ... }

追随者信息

追随者的格式如下:

follower-type ::= "enchantress" | "templar" | "scoundrel"

url ::= <host> "/api/d3/data/follower/" < follower-type>

得到的内容大概如下:

HTTP/1.1200 OK

<http headers>

{ "slug": "scoundrel", "name": "Scoundrel", "portrait": "scoundrel", "skills": { "active": [ { "slug": "crippling-shot", "name": "Crippling Shot", ...}, ...], ... }, ... }

最后补充:

如何得到物品的图片列,比如在物品信息API或者英雄API的items属性里有一个icons的属性。比如那个角色的头盔的icon为unique_helm_set_05_x1_demonhunter_male,那么他的API就是

http://media.blizzard.com/d3/icons/items/small/unique_helm_set_05_x1_demonhunter_male.png

http://media.blizzard.com/d3/icons/items/large/unique_helm_set_05_x1_demonhunter_male.png

如何得到装备的数据

在得到Json的字符串以后,我们可以通过Gson转换成为Mapping,如下面的代码

Map<String, Object> mProfile ;

……

Gson gson = new Gson();

mProfile = gson.fromJson(response, new TypeToken<Map<String,Object>>(){}.getType());

在这里一定一定要注意,不要意图直接把字符串转换成对象。因为暴雪的api并不是非常的严谨。在Rest里面,职业的id是class也就是说保留字冲突。还用到了一些其他的符号,比如说"-"。

如上的图片,请大家不要做,完全没有啥意义。说起来满脸都是泪啊。

转载于:https://www.cnblogs.com/canglin/p/4396806.html

Diablo3英雄榜-API分析相关推荐

  1. CodeGen API分析

    CodeGen API分析 作为使用命令行界面的替代方法,开发人员可以使用核心CodeGen环境编写自定义工具或实用程序来生成代码,从而将CodeGen更紧密地集成到开发环境中. 为了实现这一点,Co ...

  2. python可视化分析网易云音乐评论_网易云音乐热门评论api分析

    网上有现成的例子我就扒过来了!! title: 网易云评论api分析 date: 2018-12-24 20:54:46 tags: [python] 网易云音乐是个好地方,里面各个都是人才,特别是评 ...

  3. 运用百度智能云车型识别API分析具体车型

    运用百度智能云车型识别API分析具体车型 一.申请Key 百度AI开放平台图像识别_API Key与Secret Key 二.获取access_token 我这里运用"黑魔法"进行 ...

  4. 在线课程开放平台API分析及脚本制作(一)

    目录 前言一 前言二 猜测 思考 一.官方API分析 1.获取用户信息 2.获取课程所有者信息 3.获取测试题信息 4.获取parentId 5.学习日志添加接口 6.官方套题提交接口 二.脚本API ...

  5. 抖音API分析,视频批量下载-初级

    2019独角兽企业重金招聘Python工程师标准>>> 使用工具charles,主要是用来获取访问的API数据的,为啥说初级呢,因为并没有解决mas加密,这样的话只能刷到50条新数据 ...

  6. 知乎日报 API 分析

    声明 以下所有 API 均由 知乎(Zhihu.Inc) 提供,本人采取非正常手段获取.获取与共享之行为或有侵犯知乎权益的嫌疑.若被告知需停止共享与使用,本人会及时删除此页面与整个项目. 请您暸解相关 ...

  7. python爬虫网易云音乐最热评论并分析_网易云音乐热门评论api分析

    网上有现成的例子我就扒过来了!! title: 网易云评论api分析 date: 2018-12-24 20:54:46 tags: [python] 网易云音乐是个好地方,里面各个都是人才,特别是评 ...

  8. 虚荣 VG API 分析

    虚荣 VG API 分析 数据均来自于网络 仅供学习,严禁用于非法以及盈利之用,若有侵权请联系删之 https://api.vgpro.gg/heroes/all https://api.vgpro. ...

  9. 对英雄联盟比赛预测(二)- 数据获取api分析

    系列文章目录 对英雄联盟比赛预测(一)- 特征分析 对英雄联盟比赛预测(二)- 数据获取api分析 对英雄联盟比赛预测(三)- 数据获取Java实现 文章目录 系列文章目录 声明 前言 一.数据源分析 ...

  10. 【Python】豆瓣FM API分析

    原文地址 豆瓣FM非官方API分析 原理 豆瓣并没有开放 douban.fm 的API 以下的分析只是通过抓包,并结合网上前人的研究,猜测参数的作用 通过python的requests模块来测试 根据 ...

最新文章

  1. 全球计算机视觉顶会CVPR 2020论文出炉:腾讯优图17篇论文入选
  2. mongodb cond 模糊查询_为了实现在线库的复杂查询,你还在双写吗?
  3. git设置和取消代理
  4. python装饰器原理-python装饰器原理和用法总结
  5. C语言sizeof运算符
  6. 《Go语言圣经》学习笔记 第四章 复合数据类型
  7. Ubuntu 18.04 下安装pip3及pygame模块
  8. cocos2dx java 乱码_[cocos2d-x] --- 完美解决中文乱码
  9. sae nodejs mysql_通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)
  10. JS-记事本(代码)
  11. python是一门胶水语言_Python是唯一被称为“胶水语言”的编程语言?事实并非如此!...
  12. 4.2 NI-USRP驱动安装与检测
  13. java 界面登录界面_Java登录界面的实现(注册、登录、背景图片)
  14. 计算机二本院校排名民办河北,2020年河北民办二本大学及分数线-河北最好的民办大学学费...
  15. JavaScript 透明背景色
  16. Heatmap-based Vanishing Point boosts Lane Detection 论文翻译
  17. 利用Landsat8数据的不同波段组合监测冰雪分布情况
  18. 《A CMOS Time-to-Digital Converter With BetterThan 10ps Single-Shot Precision》论文阅读
  19. linux防火墙富规则,[Linux]Redhat7防火墙配置汇总
  20. 用双向宽搜来提高搜索效率

热门文章

  1. html+css罗盘式旋转时钟
  2. excel自动换行快捷键_Excel中Alt键的10大应用技巧解读
  3. [转]王垠的过去和现状
  4. 使用rufus制作windows系统安装u盘
  5. c语言用户登录系统管理员,C语言系统用户管理系统
  6. wps右下角弹窗广告(WPS购物或叫WPS热点)彻底关闭
  7. WPS广告弹窗永久关闭
  8. SAP 采购订单入库——库存查询
  9. Pr cc 2019 v13.0 添加字幕文本不显示,输入字符后无选中框解决方案
  10. POST请求下载文件