esi / esi-issues

Issue tracking and feature requests for ESI
https://esi.evetech.net/
207 stars 23 forks source link

[Feature Request] The ability to query sovereignty information on a single system. #480

Closed rollo1002 closed 6 years ago

rollo1002 commented 7 years ago

Feature request: The ability to get sovereignty from a single system.

Route: sovereignty/map/?system_id=

Authentication: None

Use case: In my app I use this information to provide more detail on systems that are active.

Example returns

"system_id": 30002105, "alliance_id": 99005959, "corporation_id": 98472414

Previous XML or CREST route

https://crest-tq.eveonline.com/solarsystems/30002105/ It used to be part of the solarsystem api in the crest. "sovereignty": {"id_str": "99005959", "href": "https://crest-tq.eveonline.com/alliances/99005959/", "id": 99005959, "name": "Off The Reservation."}

aquarhead commented 6 years ago

This is all in https://esi.tech.ccp.is/latest/#!/Sovereignty/get_sovereignty_map

rollo1002 commented 6 years ago

I just tried to use this and in order just to get 1 system's information it's taking me 1:11 minutes. This is due to the fact that I have to go through the entire sovmap to include wormhole systems which are not even ownable to search for the one match. The performance hit on the client end is horrendous. This information used to be part of the solar system information why can't you repeat the process? Or if this is not possible can an endpoint be provided https://esi.tech.ccp.is/latest/#!/Sovereignty/get_sovereignty_map/{system_id}

aquarhead commented 6 years ago

Due to the limitation of swagger spec, we can only provide the response in an array, but you can easily reformat the response to a hash or dict which could perform way better for random access.

Reason to not include it as in CREST:

  1. We don't want to repeat information in different endpoints which might possibly mismatch due to cache timers
  2. All other information in the solar system endpoint is static data and by removing this only dynamic data (which is already presented in another endpoint) we can leverage better cache support such as ETag