Depricated endpoints

So I noticed that calls to /characters/{character_id}/ has begun being super slow. And at the Swagger UI it is marked as deprecated.

Is there any additional info on this, and what the replacement is, if any? I couldn’t seem to find any good info as to this change.

Or is this another nail in the box for getting public information?

1 Like

Some problems now with Esi quickness. I am trying to get the queue of a character in space, new bean not NPE finished yet. I update her yesterday without problems, five minutes now and i get trash and bad results, No change in my code. Check tomorrow.

Those are two separate issues. The slowdown is due to some issues with ESI right now, we should know more once CCP get to the office. Join us on Tweetfleet for live discussion.

The deprecation header means youre hitting an old version of the endpoint. There is a blog post on the ESI blog that explains it much better than I could https://developers.eveonline.com/blog/article/esi-endpoint-versioning-important-info-and-best-practices

For /characters/{character_id}/ the most recent version is v4, you are likely hitting v3

Also, feel free to request an invite to tweetfleet chribba. In the #esi channel you’ll often get warnings of ESI status (we even have friendly bot functions to check it!) more quickly. https://www.fuzzwork.co.uk/tweetfleet-slack-invites/

That’s weird though, since I use /latest - shouldn’t that auto switch to v4 - unless it was during a update or something.

And it was saying deprecated in the swagger ui, but maybe it was just being updated to v4 at the time (alternate route at the time was v3)

And ESI is still having problems right?

{“error”:“Timeout contacting tranquility”,“timeout”:10}

1 Like

Correct, there’s been intermittent failures all day.

As for the versioning, are you on /latest or /_latest? The latter maps to versioned routes. You should avoid using /latest in favour of versioned endpoints, use underscore routes fo codegen

yeah, use _latest to have eg v4/character_character_id instead of latest/character_character_id

Now I’m not sure what _latest is unless you’re thinking about the headers?

Mainly I push everything through my own proxy (for caching and rate limits) it proxies to /latest/ as I use it for many different endpoints.

Eg I do myproxy.com/characters/1234/ and it proxies to esi.evetech.net/latest/characters/1234/

If I were to update my proxy to send to v4 it would work for that specific request but for example /status/ would fail since it only has v1, but /latest/status/ works.

If I replace that with _latest however I only get a 404. Maybe I need to refresh my documentation reading :blush: Obviously being able to use the latest without any modification would be best overall.

Underscore routes hold the swagger definitions with versioned routes, for example https://esi.evetech.net/_latest/swagger.json

They are mainly useful for codegen. You can’t use _latest for the actual endpoints, so there’s no /_latest/characters/{character_id}/ for example. Check out this blog post for a better explanation:
https://developers.eveonline.com/blog/article/esi-best-practices-using-underscore-routes

the latest definition is the one for which each path goes to *latest/*version
the _latests definition is the one for which each path has a specific version, eg v1/.

if you build against latest, the route you are given (eg latest/player_by_id) may become invalid later.
if you build against _latests, the route you are given (eg v1/player_by_id) will still be valid even when latest version wil have changed.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.