Third Party Developer Blog

rss Viewing all items

Aug
18

ESI Outage: 2017-08-18

CCP Logibro | 2017-08-18 13:23
Hi all ESI had a general outage yesterday between 14:15UTC and 21:00UTC. The locations and wallet endpoints remain offline to triage the underlying issue, which has been identified but requires further investigation. They will remain offline over the weekend. The endpoint /universe/names has also been offlined due to to an unrelated issue. None of these endpoints are deprecated. All will be returning ASAP, once the issues have been resolved. As always, we are available to discuss the situtation in the #esi channel of the tweetfleet slack. More as it happens, Team Tech co. read more
Aug
8

Setting up and Running esi-swagger-ui: ESI's Newly Open Sourced Front End

CCP Zoetrope | 2017-08-08 14:20
This blog post is part of a series of blogs examining best practices for ESI development. Each blog will be published on the 8th of each month during the journey towards XML API and CREST’s termination date. The legacy APIs will be terminated on May 8th, 2018, or earlier if metrics signal a trivial level of usage. On July 11th, Team Tech Co open sourced the repository behind ESI's user interface: esi-swagger-ui. In doing so, we wanted to provide a way to the community to have documentation available offline as well as giving the community a chance to contribute and make ESI better looking and easier to use. esi-swagger-ui is a fork of the official swagger-ui project and is built on version 3 of that project. At the time of this writing, the default view for ESI is still ... read more
Jul
21

ESI Swagger Codegen Issues and Workarounds

CCP Zoetrope | 2017-07-21 13:11
This blog addresses an inconsistency [1] with a tool used within our previous blog: Using Swagger Codegen to Generate a Client API. In the previous blog we chronicled how to generate an ESI client library for Python using the Swagger Editor or curling the https://generate.swagger.io endpoint (which the Swagger Editor uses). However, it's been brought to our attention that https://generate.swagger.io is not working with the ESI Swagger spec found at https://esi.tech.ccp.is/_latest/swagger.json. Because online Swagger tools may not always work, this blog will present a backup method that can be used to generate a client library from ESI's Swagger spec. Prerequisites For this specific workaround you will need Docker installed on your machine. We will not go into detail about what Docker is or how it works but feel free to dig into Docker's ... read more
Jul
8

ESI Step by Step - SSO to Authenticated Calls

Team Tech Co | 2017-07-08 00:01
This blog post is part of a series of blogs examining best practices for ESI development. Each blog will be published on the 8th of each month during the journey towards XML API and CREST’s termination date. The legacy APIs will be terminated on May 8th, 2018, or earlier if metrics signal a trivial level of usage. Last month, we talked about auto generating a client library for ESI using Swagger Codegen. This month we will expand on this by stepping through the SSO authentication flow and using that authentication to make a call to the ESI endpoint /characters/{character_id}/standings. Typically, one would set up a server to handle most of this process, but today we're going to do it manually with curl, to lay out the steps in the process. It is assumed the reader already knows what SSO is, if a refresher ... read more
Jun
26

ESI and optional booleans

CCP SnowedIn | 2017-06-26 16:34
Greetings space developers, Just wanted to send out a short update to notify everyone of a behavioral change in ESI. By the time you're reading this, ESI will have stopped sending optional boolean attributes when they are not True. If a spec has the boolean as required, the value will always be sent. Otherwise the key/value will only be sent if the value is True. An object property is required only if it is listed in the object schema's required array. For example, the alliance object in the GET /v1/corporations/{corporation_id}/alliancehistory/ 200 response array, each object has an alliance property, which is defined as: { "description": "alliance object", "properties": { "alliance_id": { ... read more
Jun
8

ESI Tutorial: Using Swagger Codegen to Generate a Client API

CCP Zoetrope | 2017-06-08 00:00
This blog post is part of a series of blogs examining best practices for ESI development. Each blog will be published on the 8th of each month during the journey towards XML API and CREST’s termination date. The legacy APIs will be terminated on May 8th, 2018, or earlier if metrics signal a trivial level of usage. Here on this blog we regularly mention the fact that ESI uses a framework called Swagger. In fact, the word "Swagger" is directly in the name (EVE Swagger Interface)! We also regularly mention that Swagger provides the capability of auto generating code for the programming language of your choice. However, it's not entirely obvious from looking at Swagger documentation how one should go about generating and using a client library. This blog will cover two ways to generate a library using ESI with tools provided ... read more
May
26

Caution: AccountStatus.xml.aspx Deprecated and Unreliable

Team Tech Co | 2017-05-26 16:50
Currently, the XML API endpoint /account/AccountStatus.xml.aspx is returning unreliable data. This endpoint has been officially deprecated since November 2016. Team Tech Co. has decided that this issue is not considered a "critical bug". As such, there are no plans to make changes to the endpoint to fix this issue (per our announcement here). The reasons we did not class it as such are: Account level information will not be available in ESI. Players receive notification e-mails directly from CCP if their non-recurring subscription is approaching expiry. This endpoint's original intent is no longer relevant, as players are not prevented from logging into EVE if their Omega status lapses. Despite being deprecated and unreliable, we will be leaving the endpoint active so as to not disrupt applications that would break if it ... read more
May
8

ESI Best Practices: Generating Code With Underscore Routes

CCP Bartender | 2017-05-08 16:00
This blog post is part of a series of blogs examining best practices for ESI development. Each blog will be published on the 8th of each month during the journey towards XML API and CREST’s termination date. The legacy APIs will be terminated on May 8th, 2018, or earlier if metrics signal a trivial level of usage. This blog explains best practices for autogenerating language specific clients from the ESI swagger spec. When generating code from one of the named routes (e.g. https://esi.tech.ccp.is/latest/swagger.json ), you may have noticed the resulting client library uses /latest as the version in all its URL calls. You can see why if you look at this fragment of the swagger spec from the above URL: { "basePath": "/latest", "host": "esi.tech.ccp.is", "info": { "description": "An ... read more
May
5

Changes to the public citadel endpoint

CCP Bartender | 2017-05-05 15:07
Greetings all! On Tuesday 9th of May, Team Tech Co will be releasing a behavior change to the /universe/structures/ endpoint. This change will affect all versions of the endpoint, and although it will not change the specification of the endpoint (so you won't need to update your code), you may wish to know about how the behavior changed and why. Until now, this endpoint has been returning the structure ID’s of every structure that had the "public" entity on its ACL's allowed docking rights. This was done on the basis that such citadels are clearly visible in space and in the in-game structure browser, and thus matched information given in game. However, this is not quite correct. It is possible to add the "public" entity to one's ACL's, and then explicitly ban someone. Some of you may have noticed that if ... read more
Feb
1

Breaking changes and you - How to use alt-routes to enhance your sanity

CCP Bartender | 2017-02-01 14:19
Afternoon developers! We've mentioned it before, but I'd like to give everyone a clear best-practices guide to how to use alt-routes in ESI to maintain application stability against a constantly evolving API. Schedule of breaking changes Before I get into that though, we previously said we'd be updating a forum thread with all planned breaking changes to ESI. That's turned out to be a bad solution to letting you all know when we're planning to change stuff. It's hard for you to read at a glance, and it's totally outside the tools we use day-to-day to develop ESI. We've moved this information to the ESI deployment timeline, here: https://github.com/ccpgames/esi-issues/projects/2. The timeline shows the deployment of totally new routes, but it also shows the deployment of routes that are going to have breaking changes. Consider the following screenshot: ... read more