确保稳定性
如重要概念中所述,新的游戏版本可能导致任意破坏性更改,[模式]可能会收到来自社区的更改以修复或改进它们。
上述任何一种都可能影响 API 在响应中构建数据的方式——反过来,破坏任何依赖该结构使用 API 的代码。
没有人希望收到未宣布的破坏性更改。XIVAPI 允许您”固定”游戏版本和模式,以确保您对 API 的使用不会改变,直到您准备好更新它。
此外,可以使用固定来查看数据在 API 记录的任何先前游戏版本中的样子。
所有从游戏文件派生数据的 API 端点都接受一个 version 参数。当指定该参数时,响应中的数值会反映该版本下的数据内容。如果未指定,则默认使用版本 latest,即始终从最新可用的游戏版本中获取数据。~~
可查询的所有版本列表可以通过 API 获取,详情请参阅 API 参考文档。
在 FFXIV Patch 7.1 中,许多玩家技能如往常一样进行了调整。例如,骑士的技能「保护」在该版本中射程增加了 10 米。
// /api/sheet/Action/27?fields=Range&version=7.0{ "fields": { "Range": 10 } }
// /api/sheet/Action/27?fields=Range&version=7.1{ "fields": { "Range": 20 } }提供表格数据的 API 端点还接受 schema 参数。指定的模式将在从表格读取数据时使用,并用于解释提供的任何字段过滤器。如果省略,将使用请求的游戏版本的最新模式。
所有接受模式参数的请求也将在响应对象中包含 schema 值。该值被视为用于请求的模式的_规范_指定符——因此,建议记录该值,如果计划固定模式,则使用它。努力确保规范指定符是模式在某个时间点最稳定的表示。
API 构建为支持多个社区模式源。在撰写本文时,EXDSchema 是唯一积极支持的源,有关其使用的详细信息,请参见下文。
EXDSchema git 存储库跟踪跨游戏版本的表格模式,并在 FFXIV 开发者社区中越来越广泛地使用。XIVAPI 提供了几种方法来指定您希望使用的 EXDSchema 映射。
exdschema@2:ver:request- 选择请求目标的游戏版本可用的最新模式。
exdschema@2:rev:<revision>- 使用指定 git 修订版的模式。
EXDSchema 使用 exdschema@2:rev:<revision> 形式作为规范指定符,将已解析提交的完整 SHA-1 对象名称作为修订版。
在其他更改中,提交 c44cfd2 将 WorldDCGroupType 的 Unknown0 字段重命名为 NeolobbyId。可以使用模式固定来观察 c44cfd2 包含这些更改,而父提交 22f45f4 不包含。
// /api/sheet/WorldDCGroupType/9? \// fields=Unknown0,NeolobbyId&schema=exdschema@2:rev:c44cfd2{ "schema": "exdschema@2:rev:c44cfd270a72248293e242b4950b2ddeff9e49f2", "fields": { "NeolobbyId": 9 }}
// /api/sheet/WorldDCGroupType/9? \// fields=Unknown0,NeolobbyId&schema=exdschema@2:rev:22f45f4{ "schema": "exdschema@2:rev:22f45f4d6aab0c8722f5c0a6eabceb1e2a13c12c", "fields": { "Unknown0": 9 }}