CCP Games recently released an official mobile application for Eve Online. One of the concerns with CCP creating their own application was that they would use a private API and leave their existing third-party developers out in the cold. CCP addressed those concerns by releasing an entirely new API called ESI (pronounced “easy”) that will eventually replace the legacy XML API and the more recent CREST API.
APIs, or Application Program Interfaces, allow programmers to create applications that interact with other services. Examples include EVEMon, which keeps track of your character’s skills, a program that harvests EVE market data and predicts profitable trades, or for a non-EVE example, a bot that interacts with Twitter. This is made possible through ‘endpoints’, or functions and data sources that an API enables people to interact with.
The new API brings a host of new endpoints, including one that lets you send in-game mail from outside of the Eve client. Sending mail with the CREST API was stalled for nearly two years because it was closely tied to a game session. The server put you and your ship in-game even if you weren’t logged in to the Eve client. The new ESI API has solved that problem.
These days, representational state transfer (REST) APIs are everywhere. The API tracking website programableweb.com maintains a list of more than 16,000 public APIs. The problem with all these APIs is lack of standardization, and this is where Swagger comes in. Swagger started in 2010 as an effort to develop a standard for creating language-agnostic APIs which are understandable and discoverable. In January of this year, Swagger became the OpenAPI specification. It has since gained traction in the industry.
The Eve Swagger Interface brings the benefits of standardization to the third-party developer community. Swagger mandates self-documentation and discovery, and the esi.tech.ccp.is website lets you explore the API. You can even login and experiment with live data directly on that site. The new API currently has the most popular endpoints from the XML and CREST APIs. Over the next 18 months, more endpoints will be added as the old APIs are phased out. EVE-SSO security backs the new API, which provides both authenticated and unauthenticated endpoints. Players will be able to finely control who can access what data with this new API.
The ESI API is a step in the right direction. However, it has a long way to go before delivering on the promises of CREST. Now that CCP has solved the session issue which prevented sending mail, it is possible that we will get an endpoint for in-game chat as well. The adoption of Swagger makes it easier for CCP to publish new endpoints and for developers to consume them. This should remove some barriers to entry into the world of third-party development for Eve.
If you are a coder, now is a great time to get into developing for Eve.