Eve Online's CREST API Library using fluent, english-like syntax
- Set configuration in src/Config files
a. CREST.php - for setting configuration concerning how the library talks with the API
b. Cache.php - for setting configuration concerning a cache that the library utilizes - Initialize a Crester object
- Redirect to Eve Online SSO
- Handle Callback
- Make calls on returned object
redirect() - redirects visitor to Eve Online SSO for authentication
handleCallback($AuthCode, $State = '') - creates a Crest object and handles final authentication with API
fromRefreshToken($Token) - returns a Crest object authenticated by the given Refresh Token
crest() - returns the current connection to the CREST API
xml() - returns the current connection to the XML API
setAuthCode($AuthCode) - updates the connection's used Authorization Code and verifies it
getStatus() - returns true/false whether the connection is ready to make calls to the API
getToken() - returns the current token being used to make requests
getRefreshToken() - returns the current refresh token
getExpiration() - returns when the current token will expire
node($key, $value = NULL) - adds a node to the route to traverse down the API tree
get() - makes a GET call with the current route and returns the result as an array
post($data = []) - makes a POST call with the current route and given data key/values and returns the result as an array
put($data = []) - makes a PUT call with the current route and given data key/values and returns the result as an array
delete() - makes a DELETE call with the current route and returns the result as an array
verifyCode() - makes specialized call to verify Authorization Code (called automatically)
getCharacterInfo() - makes specialized call to retrieve information about the logged-in character
customCall($URL, $Method) - makes a call to the specified URL with the given method (GET, POST, PUT, DELETE)
setToken($Token) - sets the access token to use when interacting with API (called automatically)
setKey($Key) - sets call to use API Key Authorization. $Key is an associative array with indexes "KeyID" and "VCode"
scope($Scope) - sets the scope of the call
endPoint($EndPoint) - sets the endpoint the call will use
accessType($AccessType) - sets the type of access the call will request. Only for CREST Authorization
get($Args = [], $Key = NULL) - makes the built call against the API. $Key is an alternate to using setKey() and uses the same syntax
clear() - clears the currently built call (called automatically by get())
Nodes that are added to specify the route that a call will use to reach it's destination can follow one of three formats:
In Example 1 below, the first node added to the route uses a simple key search. In this case, after calling the base URL, CRESTer will search the returned json for a key called "constellations" and calls the URL in that item's "href".
Also demonstrated in Example 1 is adding a key-value search node, shown by the second call to node(). In the example, the node is told to search for a key called "name" that has a value of "Joas".
Initialize the CRESTer object
$crester = new \Crester\Crester();
Make redirect to SSO
$crester->redirect();
Handle callback from SSO
$crest = $crester->handleCallback($_GET['code'], isset($_GET['state']) ? $_GET['state'] : '');
Define call using fluent interface syntax
$Joas = $crest->node('constellations')->node('name', 'Joas')->get();
View the results
var_dump($Joas);
array(4) {
["position"]=> array(3) {
["y"]=> float(3.3836265012848E+16)
["x"]=> float(-4.9173916281706E+16)
["z"]=> float(-4.2057063709409E+16)
}
["region"]=> array(1) {
["href"]=> string(48) "https://crest-tq.eveonline.com/regions/10000001/"
}
["systems"]=> array(7) {
[0]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000112/"
["id"]=> int(30000112)
["id_str"]=> string(8) "30000112"
}
[1]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000113/"
["id"]=> int(30000113)
["id_str"]=> string(8) "30000113"
}
[2]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000114/"
["id"]=> int(30000114)
["id_str"]=> string(8) "30000114"
}
[3]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000115/"
["id"]=> int(30000115)
["id_str"]=> string(8) "30000115"
}
[4]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000116/"
["id"]=> int(30000116)
["id_str"]=> string(8) "30000116"
}
[5]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000117/"
["id"]=> int(30000117)
["id_str"]=> string(8) "30000117"
}
[6]=> array(3) {
["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000118/"
["id"]=> int(30000118)
["id_str"]=> string(8) "30000118"
}
}
["name"]=> string(4) "Joas"
}