| Pages: [1] 2 :: one page |
| Author |
Thread Statistics | Show CCP posts - 0 post(s) |

Kaska102
Caldari
|
Posted - 2008.01.22 19:01:00 -
[1]
Edited by: Kaska102 on 22/01/2008 19:09:56 Kryik and I have been working on a new project to help speed up the development of applications using the EVE API. To that end we've created an EVE API Library using C# that does almost everything for you. Caching is handled inside the library so your application doesn't have to worry about hitting the EVE Servers too much. Also no XML knowledge is needed in order to retrieve the data stored.
API keys are not stored, and when used for caching they are hashed, so the data can not be retrieved. The library currently supports ALL api calls, even the portraits.
The code is open source and available here: http://code.google.com/p/libeveapi/
An example piece of code to get the character list:
CharacterList characterList = EveApi.GetAccountCharacters(userid, "apiKey"); foreach (CharacterListItem character in characterList.CharacterListItems) { string characterName = character.Name; int characterId = character.CharacterId; int corporationId = character.CorporationId; string corporationName = character.CorporationName; }
Feel free to post comments or questions here or on the google code page. Thanks everyone and I hope you all find this useful. Also a special thanks to everyone who worked on the EVE Dev wiki page, as that had invaluable information on it that we used to help construct the library.
|

Ellaine TashMurkon
CBC Interstellar The Unseen Company
|
Posted - 2008.01.22 19:10:00 -
[2]
\o/
|

Soujiero
|
Posted - 2008.01.23 17:36:00 -
[3]
Dang, you beat me to it.
Source code comes complete with NUnit tests... Good work.
|

Amida Ta
|
Posted - 2008.01.23 19:29:00 -
[4]
Ouch - another series of double (tripple?) work done ;)
I've got a C# library called EveAI.Live that does this. And it will not just call the Apis, it will also resolve the returned data and combine it with the static eve data.
Link: EveAI
However choice is always nice: So good luck with your project!
|

Amida Ta
|
Posted - 2008.01.23 19:47:00 -
[5]
BTW: Your library doesn't work if you have a non-english system locale.
|

Kaska102
Caldari
|
Posted - 2008.01.24 05:39:00 -
[6]
I don't have a non-English locale version of windows sitting around, what's the problem that comes up?
|

Kaska102
Caldari
|
Posted - 2008.01.26 06:30:00 -
[7]
Version 1.0.2 Has been released. Please see the changelog here: Changelog
The API can now act as a mini datastore, by serving up the old cached data if a network connection is not available.
As a reminder, with the API you DO NOT have to worry about the EVE API server caching rules, or deal with any XML processing yourself.
Only 1 dll file is needed, and it comes in at a small 76kb!
|

Stinkbomb
|
Posted - 2008.01.26 20:34:00 -
[8]
Fantastic, just what i was looking for. Its complete and feels nicer than the eve toolbox api. Saves me doing a load of work.
Just one critisism... Please please please dont use public member variables on your returned objects. its just bad form. Make your objects imutable - put all members private readonly with public properties.
Why? Well for starters WPF databinding only works with Properties :)
|

Kyrik
|
Posted - 2008.01.26 23:52:00 -
[9]
I'm glad you like it :).
Changing the public member variables to properties is at the top of my to do list. We've actually just run into the data binding issue in an application we're working on.
On immutability: I would love to end up with fully immutable data structures. We can get 90% of the way there by wrapping private readonly members in get-only properties but there's still the collections. Unfortunately the read only collections wrappers don't play nice with XmlSerializer. If you have run into this issue before then I'd love to hear what you did to get around it.
We're definitely looking for feedback from application developers so if you think of anything else you would like please let us know.
|

Kaska102
Caldari
|
Posted - 2008.01.27 07:00:00 -
[10]
New version 1.1 has been released tonight!
Changes with the new version: * All public member variables have been replaced with properties.
As always let us know if you would like to see any more features or find any bugs.
|

Stinkbomb
|
Posted - 2008.01.27 08:19:00 -
[11]
Wow that was quick, i will take a look today thanks. I have not had to do much with serialization im afraid but i have made one of the structures imutable - i didnt get as fas as saving the cache so ill try that today and see what happens.
The only other suggestion i have is for the unit tests. Instead of going to a local webserver, do the following 1) Extract Interface from Network 2) Add an additional constructor or static or whatever so you can inject your own INetwork to the api 3) use NMock to mock up calls to the web service - something simple that loads the resource response files you already have.
|

Stinkbomb
|
Posted - 2008.01.27 15:49:00 -
[12]
Hi guys, In order to make an immutable object serializable you need to implement ISerializable on your own. Im going to do this quickly for CharacterSheet so can post you what i come up with. I think we maybe need to take this conversation off the forums?
|

Kyrik
|
Posted - 2008.01.28 16:59:00 -
[13]
ya, let's take this off the forum. You can contact me using email or gtalk at [email protected] .
|

Amida Ta
|
Posted - 2008.01.28 18:11:00 -
[14]
Originally by: Kaska102 I don't have a non-English locale version of windows sitting around, what's the problem that comes up?
You get exceptions because you parse all Strings against the current system locale, which is incorrect. You don't need another windows to try it. Just set the locale of the thread/application to something different (e.g. German) and try to call the Apis.
|

Kaska102
Caldari
|
Posted - 2008.01.28 20:15:00 -
[15]
Edited by: Kaska102 on 28/01/2008 20:15:28 We've fixed the localization issues, a new version will be released tonight.
|

Kaska102
Caldari
|
Posted - 2008.01.29 00:53:00 -
[16]
New version 1.1.1 is out which includes a fix for the localization issue.
We have also created a future plans page on the wiki, which can be found here.
|

Soujiero
Gallente
|
Posted - 2008.01.30 21:51:00 -
[17]
Edited by: Soujiero on 30/01/2008 21:52:22 I was looking at the code and refactored some of the places involving enums. Should i create a patch w/ tortoise and send it to one of you guys?
It's nothing big... Using Enum.Parse and the [Flags] attribute with the corporate roles enum.
|

Kaska102
Caldari
|
Posted - 2008.02.01 04:52:00 -
[18]
Yeah go ahead and send us a diff. Our emails are on the google code site.
|

Lambda Expression
|
Posted - 2008.02.02 23:10:00 -
[19]
Great job guys! Saves me a lot of work. I'll test it on MacOS and Linux (Mono)
|

Yuwan Sum
Caldari
|
Posted - 2008.02.02 23:32:00 -
[20]
Just tested the library under Mac OS 10.5, works like a charm.
At first glance the documentation on the Google Project page seems outdated. The library has great potential but will require a lot of refactoring. (Please don't take this the wrong way, just providing feedback to help you).
- Nested classes should be avoided - The use of generics will simplify your code and make it easier for developers - Namespaces should also follow casing guidelines - ...
If you want, we can talk about it some time, I might be able to help you.
Another question, did you choose the GPL license over the LGPL license for a reason, if not, would you consider licensing under the LGPL, given the nature of the library?
Feel free to contact me at any time.
(http://www.itcrowd.be)
Blog: http://www.itcrowd.be AIM: [email protected] (intactive e-mail address) MSN: [email protected] (inactive e-mail address) |

Kaska102
Caldari
|
Posted - 2008.02.03 05:35:00 -
[21]
Edited by: Kaska102 on 03/02/2008 05:36:01 I just wanted to reply back real fast with the gpl vs lgpl comment. The reason we selected the GPL over lGPL license was for a couple reasons. We put a lot of time and hard work into the library so that other people could use it for their projects to help the community out. We aren't asking for money or isk or anything else for people to use the project, it was for the community. We fear that if it was lGPL people would take advantage of this generosity and create pay-for programs that use the library, which we don't feel would be beneficial to the community, and would take advantage of our work. Also the eve data export forbids being used in a commercial application (pay-for), so I don't see many people being able to make a good program without that data.
Also these programs use the FULL api key, many times, which can contain a lot of data, especially for a ceo or director. I know any program I want to use I want to be able to look through the code of the program and see what is happening with my key. With the library we take steps to encode the key and we don't send it anywhere else, and people can check that out for themselves.
Also on a more personal note, I love playing with code, I think it's one of the best ways to learn. Also if a program doesn't work just how you want it to you can easily take the code and make that one slight modification to it. I think its great for the community also because other people can add new features and additions to it easily. Many people here have suggested code changes to the library, and since it's open source the code changes can be easily made by then and then sent to us as diff's, or they can make the changes in their version of the library and keep it for their program.
Edit: Also.. Glad it works on mono/OSX, I hadn't gotten a chance to test it on my MBP yet.
|

Kaska102
Caldari
|
Posted - 2008.03.08 21:21:00 -
[22]
Just a quick bump for anyone looking for a C# library.
|

Blen furi
|
Posted - 2008.03.08 22:48:00 -
[23]
CharJournalEntries and CorpJournalEntries
Contants are incorrect in Constants.cs
Actual url should be WalletJournal.xml.aspx
Thx, Stoney
|

DheCuir
|
Posted - 2008.03.13 14:30:00 -
[24]
Phew, looks like this saved me for a LOT of work 
Good work :)
|

Tiberius Xavier
Eternity INC. Project Alice.
|
Posted - 2008.05.27 19:47:00 -
[25]
This is a great library overall but there some issues that need to be resolved. Is there someone actively working to maintain this library? I'd hate to keep a divergent library in parallel.
|

Keeno Smythe
GBTeam C0VEN
|
Posted - 2008.05.28 00:04:00 -
[26]
GJ it looks very good. I see there many Unit Test's... you've been writing this library using some kind of agile way ? ------------------------------
|

Modescond
|
Posted - 2008.06.27 03:37:00 -
[27]
I am working on an application right now which uses this library. I would like to add GateCamper support to my application, and thus into this library. Would it be possible to get a SVN branch off of your trunk so that I can do the updates?
Anything would be great, thanks!
|

blubber dubba
|
Posted - 2008.07.02 10:47:00 -
[28]
i really like your API... Keep it up! I will develop a application with that in the near feature :) |

Callis Iqnatius
Amarr R.A.A.F. INC
|
Posted - 2008.07.19 22:13:00 -
[29]
is there a way of getting the name of the system when calling up the pos list instead of just the ID??? or is there a list that i can use to find out what the name the system is from the ID??// ...............................................................................................................................
|

Amida Ta
German Mining and Manufacture Corp.
|
Posted - 2008.07.21 16:21:00 -
[30]
Originally by: Callis Iqnatius is there a way of getting the name of the system when calling up the pos list instead of just the ID??? or is there a list that i can use to find out what the name the system is from the ID??//
EveAI Live can ;) http://oldforums.eveonline.com/?a=topic&threadID=654430
|
| |
|
| Pages: [1] 2 :: one page |
| First page | Previous page | Next page | Last page |