World of Warcraft API

Installs: 
37
Open Bugs: 
3
Development Status: 
Seeking co-maintainer(s)
Under active development

This module is a set of a base component and products to integrate with drupal core. The Blizzard Community Platform API enables communication with the RESTful APIs exposed through the World of Warcraft community site.

http://blizzard.github.com/api-wow-docs/

This module contains a low-level API and a base framework for developers who wants to write their own products upon this library.

From version 8.x, this module will also contains a powerful product for site builders and integrator leveraging the Views module allowing them to create custom pages like rosters, guild progression or loot feeds without the need of programming.

Designed with a few goal in mind:

  • Maintanibility: the software will evolves with the battle.net Service and with versions of Drupal, the code base is written to cope with a changed environment. Test suit is the same quality as the software itself, allowing the isolation of defect for further correction and ensure new requirements will not break anything, thus, making future maintenance easier.
  • Dependability: it does what it claims, and is trustworthy. The code is optimized to run for limited resources computers with special care to Services calls or any form of I/O which are costly. Exceptions are logged in the watchdog, although you can catch them if needed.
  • Usability: Designed for site administrator, users, and developpers, the software has been thought for them. It is using Drupal pages standard elements for both users and admin. Developpers, the API is modeled around entities, controllers and Drupal 7-8 paradigms.

Features

  • Localized API: Support US, EU, KR, CN and TW armory.
  • Data Resources are supported.
  • API Authentication is supported (private and public key).
  • wow_http_request is build upon drupal_http_request and help communicate with battle.net API by loading settings from the configuration. Each modules contains a function which also honor If-Modified headers to respect API limitation.
  • Error handling is transparent if you don't need it, and customizable if you need to handle API exception (304 Not Modified, 404 Not Found, etc.)
  • Developer API documentation

It contains a set of components which integrates drupal modules:

  • Character
    • Create a character entity, map them to users, fetch and store information directly from battle.net character resources endpoint.
    • Own multiple characters and easily swap between them.
    • Support an in-game verification mechanism.
    • Provides a good building block for user related features. Three methods for keeping synchronized your characters are supported: at entity loading (wow_character_load), periodically via cron, or explicitly set by the programmer.

    See component specifications.

  • Guild:
    • Create a guild entity, fetch and store information directly from battle.net guild resources endpoint.
    • Import your guild data and manage your roster.
    • Provides a good building block for guild related features. Three methods for keeping synchronized your guilds: at entity loading (wow_guild_load), periodically via cron, or explicitly set by the programmer.
  • Guild ranks:
    • Uses guild rank to grant permission when loading a user.
    • Ranks mapping with roles are fully customizable through an administrative UI.
    • For instance, you can give a special role to your officers such as administrator. Also, roles are automatically revoked if a user is not found in the roster anymore (in case he left or was kick from the guild).
    • Provides a good example of how to build module upon wow_guild and wow_character module. This "end user" module works directly with drupal build in permission system.
  • Items:
    • Language support for items through entity fields localization system. Drupal support out of the box localized fields. The item module leverage the field API to provides localized version of a same item.
    • Support of Tooltip for item rollovers. Use wowhead provider by default. You can also provide your own representation of an item.
    • In development - Item service that performs some amount of data mining assumed to validate the information you have (after a patch for instance).
  • Realms:
    • Provides realm status information as Drupal Entity.
    • Start realm services to start fetching informations from realms within a region.
    • Provides a form element: realm textfield with ajax auto-completion for realm selection.
  • Automated tests are enabled*. Version 2.x is test infected. More on the 'Automated Testing' tab of the project page.

Roadmap:

Backward-compatible API changes in the same branch. All X.y versions are a drop'in replacement.

  • 3.x - WoW Data Services. The Data services has been reported for further release. You can have more information about this feature here.
  • 3.x - Support of the battlegroups, character achievements, guild perks and guild achievements. Refactoring of the character races, class, and guild rewards to use the new Data Service. Api should not change, this is only an internal improvement.
  • 3.x - Support of the 'news' feed of a Guild entity.
  • 3.x - An API monitoring module giving statistics about number of calls, size of tables, etc.
  • 3.x - Support of the PVP Resources: this will be a new module included in the default package. The base component and service communication will be fully implemented, however additional features will be covered in more specific modules.
  • 3.x - Support of the Auction Resources: same as above.

Extending the API

There is a list of modules which make use of the API:

Dependencies

WoW API module PHP Drupal core Entity module Views module
7.x-2.x 5.2.5 7.2 7.x-1.0-rc3 .
8.x-3.x 5.3.5 8.x Native Native (Optional)

The dependency matrix describes the module and core minimum version required.

The World of Warcraft API 7.x-2.x requires the Entity module. The 8.x version not not requires any modules as they are packaged with Drupal 8 Core.

I am looking a co-maintainer to help me integrates new features: all the characters fields (items, professions, etc.), pvp resources and auction house resources. I will do it but if someone wants to ship-in and help it will be with pleasure :)

Releases: 
7.x-2.7
8.x-1.x-dev
7.x-2.x-dev
Release Dates: 
11/07/2012
10/26/2013
10/26/2013