bobsort.4097:

I’m not sure if this is pointed out somewhere. I was poking around with data extracted from API and noticed there are some recipes that their output item does not exists in Items API. Here are the list.


RecipeId ItemId Disipline Type                ChatLink
-------- ------ --------- ------------------- -----------
10060     72198 Scribe    GuildDecoration     [&CkwnAAA=]
10510     76707 Scribe    GuildDecoration     [&Cg4pAAA=]
10940     72307 Scribe    GuildConsumable     [&CrwqAAA=]
11125     76657 Scribe    GuildConsumableWvw  [&CnUrAAA=]
11196     75761 Scribe    GuildConsumableWvw  [&CrwrAAA=]
11530     71964 Scribe    GuildDecoration     [&CgotAAA=]
11695     70982 Scribe    GuildConsumable     [&Cq8tAAA=]

(I tried pre tag but as the whole text is formated with variable width font, columns are messed up)

Although I can validate and ignore these recipes from list in my own program,
It would be great if you could somehow check existence of the items before sending the recipe id in list.

Also I would like to know, How you guys handle deleting items or recipes in GW2?
This is specifically important when applications cache your item data and there is no way of knowing if they are updated/deleted. There was a suggestion earlier to add an API method to return ID of Items that are updated or deleted which can be determined internally via an Create/Modify Date tag on your data.

A sample of this data would be like


{  
    added:[1,2,3,4], 
    deleted:[6,7,8,9],
    updated:[11,12,13,14]
}

Lawton Campbell.8517:

I’m not sure if this is pointed out somewhere. I was poking around with data extracted from API and noticed there are some recipes that their output item does not exists in Items API. Here are the list.

Guh, I think those are the items that are actually guild upgrades and deposited straight into the guild inventory. I’ll have to dig through the code that handles the crafting bits and see why the whitelist isn’t seeing events for those items — I was pretty sure I had it hooked up right but apparently it’s broken.

Also I would like to know, How you guys handle deleting items or recipes in GW2?

As background, the API gets the item data (and any other data that can be localized) from a backend server whose sole responsibility is serializing data from the .dat file. I’m not altogether too familiar with the internal format of it (I just work against an API for reading it), but my understanding is that all updates are opaque and destructive — there are technically deltas that are used to patch the .dat file, but they’re binary diffs. The only feasible way I know of to check on the before/after versions of an item is to check it in perforce — which the backend servers won’t ever have access to.

My recommendation is to, whenever there’s a new release (e.g., once every two weeks), to do a complete reindex of all the endpoints that have a ?lang parameter. Since you’ve got a copy of the old dataset, you can compute the diff against the new one and store whatever metadata you like.

Sorry I don’t have better news