These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
123Next pageLast page
 

Upcoming API functionality and project changes in Crucible 1.5

First post First post
Author
CCP Prism X
C C P
C C P Alliance
#1 - 2012-01-16 15:37:17 UTC  |  Edited by: CCP Prism X
Transmission coded whilst listening to the most awesomest performance of the last century.

I've been doing some API work over the past week that should surface with Crucible 1.5 later this month. I thought I'd start off by introducing the changes as soon as possible so any interested parties could start making good use of them. I'll have Stillman come around to this topic and post about their availability on the testapi when they have been deployed there and basic testing has been passed. Why waste your time with my horrendously broken code, eh? Blink

There are also some internal changes on the horizon for the API project. More on that below.


Feature Additions

Item Location API Added [Deployed]
/char/Locations.xml.aspx
/corp/Locations.xml.aspx

Both these call require a full legacy key or a CAK key with explicit permissions. Any call to them must be followed by the input variable ids which is a comma seperated list of itemIDs that must be owned by the key owner (supplied as characterID for the char call if the key is not bound to a single character). Furthermore, each and every ID passed in must be a valid location (possiblity to exist in space as a standalone item).

Call will return the items name (or its type name if no user defined name exists) as well as their x,y,z coordinates. Coordinates should all be 0 for valid locations located inside of stations. Crab people, crab people, look like people, taste like crab. This can thus be used to get your ship names, POS module names and coordinates (to group stuff.. yes, I finally lived up to my Fan Fest promise and can thus show my face on the next one!).

I cannot stress enough that supplying IDs that are not valid locations or do not belong to the supplied owner (wether explicitly supplied or implied from key) will result in a completely empty result set! I know this is less than user friendly but experience has shown anything else leads to constant scraping.

Cache timer on production services: 60 minutes.
A new access check box will appear on the support website for this call, dechecked for all existing keys of course.

Type Name API Added [Deployed]
/eve/typeName.xml.aspx

I noticed that the CharacterName call was no longer servicing typeIDs. So I added this call to do that for mobile apps that cannot ship with the type part of the SDE. Call signature is just like CharacterNames, requires no access and caches for all eternity as type names do not tend to change.

Corporation Member Tracking Changed [Deployed]
The access to this call for CAK keys has now been split between LIMITED and EXTENDED. All currently existing keys will be switched to LIMITED mode for security reasons. To request the extended view on a key that allows that an additionial parameter of extended=1 will have to be supplied.

This had to be done as all CAK corporation keys are director level keys and thus all CAK keys were exposing the sensitive part of the return set. This change does not affect legacy keys.


Defect Fixes

Confusing CharacterID call returns [Deployed]
When a character was renamed, and the CharacterID call queried with the new name the result set would most probably contain the old name paired with the characterID. This is somewhat confusing when you supply 100 names and get two ids back which do not match to any name in your list.

Now, the CharacterID and CharacterName apis will not return confusing result sets like this. They will also strive to realize when a name has changed and flush it from cache but that is only possible under specific circumstances so there is no guarantee of which name will be returned in the case of renamed characters. As a reminder we always flush the cache between major updates.

Confusing KillLogs error messages [Deployed]
Error messages in the Kill mail API were less informative than they should be. They have thus been changed to reflect the following:

  1. Error code 119: Kill Logs only go a month back.
  2. Error code 120: The expected killID, that has been returned, should be supplied rather than whatever was supplied.
  3. Error Code 118: Refresh kill log with no killID supplied for most recent kills.
  4. Error Code 119 and 120: Reminder that each application should have their private kill log key.


Confusing Journal and Transaction error messages [Deployed]
When passing in transactionIDs that the underlying transaction walker does not recognize, the code will do its best to approximate desired output and return that rather than just error. To high an ID will refresh the most recent transactions, too low will just use the oldest transactionID and a nonexistant one that fits between the preceeding two ranges will approximate to the closest transactionID in the walker.

Furthermore, asking for the single most recent transactions, and then requesting the two most recent transaction on the same walker will now return the two most recent transactions rather than crap out. Previously loading up a single record frontpage would demand that you pass in fromIDs to continue walking back in the transaction history.

All comments apply to both transaction and journal APIs.

CCP Stillman will come around to this topic and announce the new additions (and perhaps defect fixes) having been deployed to SISI and tested.
CCP Prism X
C C P
C C P Alliance
#2 - 2012-01-16 15:37:37 UTC  |  Edited by: CCP Prism X
Project changes
After the bloodletting that was the 20% cut we've been restructuring a whole lot of stuff within CCP. Along with this restructuring I will be moving out of the API project to help finish up the localization work we've been doing. I promise you I'll stick around this forum as well as on #eve-dev on IRC for communication and trouble shooting purposes as I have no intention of shunning the API in the coming future. However the project is no longer my responsibility and thus I'll have limited influence on its direction.

With this restructuring ownership of the API project has given to CCP Seagull and now belongs to CCPs Accessibility segment. I'll see if she doesn't feel like introducing herself here when there is time. Cause we care, guys. [)]
Peter Powers
Terrorists of Dimensions
#3 - 2012-01-16 15:51:44 UTC  |  Edited by: Peter Powers
<3 <3 <3

Edit: had to post this, cause i forgot about the Like button!

3rdPartyEve.net - your catalogue for 3rd party applications

Squizz Caphinator
The Wormhole Police
#4 - 2012-01-16 15:52:45 UTC
Requesting a type name to id conversion, e.g., if I pass the name of an object to a TypeId call it will return the typeID for that object. This would be great for expansions that have new items and/or items that have changed names.

Keep up the great work!

Various projects I enjoy putting my free time into:

https://zkillboard.com | https://evewho.com

Unforgiven Storm
Eternity INC.
Goonswarm Federation
#5 - 2012-01-16 17:52:29 UTC
Can we expect new API stuff that covers the POCOS and Planet interation stuff?
If the answer is yes, when can we expect it to hit SISI for trials?

Corps need this info:

  • POCOs List -> location, taxes, standingsā€¦


Players need this info:

  • Command Centers List -> location, number of structures in planet, POCOs taxes applied to us in each planet
  • For each Command Center -> List of structures in each planet
  • Information on each structure ->
  1. Extractors: number of heads, program status (running/stopped), program length, expect end time of program and the summary information like the total resource yield and average yield
  2. Industrial facilities: schematic in use, status (running/stopped)
  3. Silos and Spaceports: contents stored, space available
  4. Command centers: contents stored, space available, cpu and power usageā€¦

Unforgiven Storm for CSM 9, 10, 11, 12 and 13. (If I don't get in in the next 5 years I will quit trying) :-)

CCP Prism X
C C P
C C P Alliance
#6 - 2012-01-16 18:08:33 UTC
Quote:
Requesting a type name to id conversion...

I'll look into it.

Quote:
POCOs

POCOs should be owned by corporations (Disclaimer: Stuff changes without me knowing) so that should be accessible from a corp key.

But we're not talking about any POCO specific data being included in the item position calls nor any P.I. data. Those would be feature specific calls. I can look into some POCO data, but last time I checked the PI data required a running simulation so it is not very compatible with the current API implementation.
Weaselior
GoonWaffe
Goonswarm Federation
#7 - 2012-01-16 19:02:58 UTC
Thanks, these are some great changes.

Head of the Goonswarm Economic Warfare Cabal Pubbie Management and Exploitation Division.

Kismeteer
Bat Country
Pandemic Horde
#8 - 2012-01-16 19:05:01 UTC
Guess who relayed your post!

Anyway, we could really use ihub upgrades. Also, maybe even station/ihub timers, ala the stront timers we currently have from the tower APIs.

Even the existance of ihubs would be helpful.

Please keep doing good work!
Lumy
Sebiestor Tribe
Minmatar Republic
#9 - 2012-01-16 19:16:55 UTC
Could you add characterID/corporationID attribute or element to each char/corp call? I believe there is possibility of fringe cases like:
- user generate API key for character X
- insert it to application
- application requests APIKeyInfo for X
- user changes key to character Y
- application gets data for character Y, while assuming it's still X (because APIKeyInfo is still cached, or developer forgets to hammer APIKeyInfo on every cachedUntil)
Unforgiven Storm
Eternity INC.
Goonswarm Federation
#10 - 2012-01-16 19:27:43 UTC  |  Edited by: Unforgiven Storm
CCP Prism X wrote:
Quote:
Requesting a type name to id conversion...

I'll look into it.

Quote:
POCOs

POCOs should be owned by corporations (Disclaimer: Stuff changes without me knowing) so that should be accessible from a corp key.

But we're not talking about any POCO specific data being included in the item position calls nor any P.I. data. Those would be feature specific calls. I can look into some POCO data, but last time I checked the PI data required a running simulation so it is not very compatible with the current API implementation.


All PI information needs to go though a simulation model so information can be retrived and be available in the API? There isn't someting that doesn't need to be simulated that you can give us?

I will happy with basic PI information that is more or less static, like planets locations were we have a command centers, command center type, number of strutures, pocos taxes applyed, information about storage contents and quantities...

Whatever you can gives us about PI that you can retrive from the DB directly to the API without the need to simulate is welcome at this point and will get you free beers in the next fanfest Big smile

Thanks and regards

edit: some is better than nothing

Unforgiven Storm for CSM 9, 10, 11, 12 and 13. (If I don't get in in the next 5 years I will quit trying) :-)

Project 69
League of Non-Aligned Worlds
#11 - 2012-01-16 21:29:07 UTC
would it be possible to add the stationID as "reason" in the wallet API for the refID 12 (Docking Fees)

http://wiki.eve-id.net/APIv2_Char_JournalEntries_XML
like the people could see where the isk comes from

I know you can do it.. .I trust in you ;)
Sassums
Dark Venture Corporation
Kitchen Sinkhole
#12 - 2012-01-17 01:57:54 UTC
So in English what does this do?

/confused
Project 69
League of Non-Aligned Worlds
#13 - 2012-01-17 06:29:30 UTC
Sassums wrote:
So in English what does this do?

/confused


if you're refereing to my post

it lets you see from what station the docking fees are coming
Matalok
Slackers and Nihilists
#14 - 2012-01-17 09:46:39 UTC
Can't express how happy I am that the location/type API is going to see the light of day. Thanks for your work Prisim X & co., i'm sure anyone who has to deal with POS API is going to love you after 1.5.
CCP Stillman
C C P
C C P Alliance
#15 - 2012-01-17 10:56:21 UTC
First few things are deployed to apitest. More to come today Big smile

Just a random dude in Team Security.

Dragonaire
Here there be Dragons
#16 - 2012-01-19 18:18:55 UTC
So since Locations.xml.aspx is meant to only get info on things like ships, cans in space, and POS related stuff anyone come up with a typeID that can be used to find itemIDs from assetList that should be used?

Finds camping stations from the inside much easier. Designer of Yapeal for the Eve API. Check out the Yapeal PHP API Library thread.

TorTorden
Tors shibari party
#17 - 2012-01-19 19:21:39 UTC
I built my corp assets table with a container field (another itemID also located in the same table), and a locationID, Either a system or a station.

If location Is a system, and the location field is null, then I can pretty much assume it's something just floating in space.

On another note.

I cant seem to get any results other than

Quote:
{error code="126"}
Invalid ID found in ID list. Please ensure input is a comma seperated list of valid 32-bit non-negative integers.
{/error}


from the locations api.
My best guess here is that this has more to do with the fact the item doesn't exist on the test server, it being anchored in w-space and they aren't carried over to sisi...
Two step
Aperture Harmonics
#18 - 2012-01-19 21:48:51 UTC
Do ships in a POS SMA have x,y,z coords of the SMA?

CSM 7 Secretary CSM 6 Alternate Delegate @two_step_eve on Twitter My Blog

Dragonaire
Here there be Dragons
#19 - 2012-01-20 16:33:06 UTC
Quote:
I built my corp assets table with a container field (another itemID also located in the same table), and a locationID, Either a system or a station.

If location Is a system, and the location field is null, then I can pretty much assume it's something just floating in space.

That would work for anything actually in space but I was thinking about how to capture ships in stations as well since it seems they also can be retrieved. I figured people would like to grab them as well so they have the their names for them. I'll probably do like you did and start with anything that's not in a station but just thought I'd ask if someone had figured it out. There is also the issue of the stuff in cargo hold/ fittings etc also showing as in space I suppose that needs to be worked around in some cases.

Finds camping stations from the inside much easier. Designer of Yapeal for the Eve API. Check out the Yapeal PHP API Library thread.

mjollnirna
The Moon Rise
#20 - 2012-01-20 19:58:10 UTC

That would be great if you can figure out the location of a silo around a tower even in a system where you own several POS.
Actually you have to link the silo'id and tower'id manually.

Does this new x,y,z coordinates allow that ? Just have to determine what item is in a 30km of radius sphere around the coordinate of the tower.
And the items name. You can't rename a silo so it's useless for my case ?

123Next pageLast page