I'm intrigued how you're looking to approach this as you've mentioned the battle.net API, which is obviously only for websites, servers and such.
First things first, addons don't require an API key to function. They're not signed packages or require any authentication with any third party server. They're also written exclusively in LUA (barring visible interface elements which if memory serves me well, are XML documents) so your typical web languages such as JS, Ruby, Python, Go or any other aren't relevant unless you're building an addon that has data retrieved from the internet (which would be done through an EXE as addons are essentially sandboxed and can't communicate outside of the game directly, nor can the data they hold be modified while in memory by third-party programs).
Now, if you were building a web service to go with it and importing data before the game is started (through a file downloaded by the user), then you'd be able to use the web API, but the better option is to use the addon API - both are separate and there's almost no translation between them as they serve different purposes.
I would take a look at this 'Writing an Addon 101' guide on Wowhead:
http://www.wowhead.com/guide=1949/wo...ur-first-addon
It's a "Hello World" addon and only covers the basics. When it comes to functions, much about WoW addons is reactive functions (i.e. responding to hooked events) - such an example is in the last 'code block section' on this page;
http://www.dev-hq.net/posts/2--creat...warcraft-addon