|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||||
|
||||||
|
[TBA]: API Client Development
TBA currently offers an API client in PHP that can be found here.
I know Eric Haskins has written a .NET port that can be found here for now, and Team 1515 is writing a Rails port. I think myself or Chris Jelly will be working with these guys to make their ports available from the TBA site. Has anyone else written a port of the Client Library? What issues have you had porting it? |
|
#2
|
|||
|
|||
|
Re: API Client Development
I just finished a Ruby (on Rails) client library.
Feel free to use it. ![]() Have any questions, comments, bug fixes, complaints, or just want to talk to someone who knows Ruby, contact me via: AIM/Skype: talk2kern MSN/Email: talk2kern@gmail.com |
|
#3
|
||||
|
||||
|
Re: API Client Development
I attached a copy of my .net client. Currently the only documentation is the code, but if there is any interest I can finish better documentation.
It requires .net 3.5, and Visual Basic 2008 Express or Visual Studio 2008 or greater. Currently there are two projects, a class library with the client, and a console app which can be used to query the API. The readme file has instructions how to set your API key in the config file. I have put the code under the Microsft Public License, so you are free to modify or redistribute it how ever you want. If anyone has questions, comments, bug reports, ect., please contact me. My Skype, MSN, and e-mail, are in my profile, you can contact me using any of those methods. Last edited by EHaskins : 25-02-2008 at 11:26. Reason: Added express edition link |
|
#4
|
||||
|
||||
|
Re: API Client Development
I attached the compiled version of the code I posted above.
|
|
#5
|
||||||
|
||||||
|
Re: API Client Development
I've updated the documentation and files available for download at: http://www.thebluealliance.net/tbatv/api/
I'll write a pretty page to wrap around it at some point. |
|
#6
|
||||
|
||||
|
Re: API Client Development
Here is v1.1 of my library.
There is only one bug fix. 1. When loading matches, some of the matches at the 2007 Florida regional are missing team numbers, and the parser would crash. That has been resolved. |
|
#7
|
|||
|
|||
|
Re: API Client Development
Also found a bug in my Ruby code when I actually used it in practice for my application.
This'll make the code more Ruby-like and return false if there are no results found but an error does not occur. Happy coding! |
|
#8
|
||||||
|
||||||
|
Re: API Client Development
|
|
#9
|
||||
|
||||
|
Re: API Client Development
Would it be useful to create a SourceForge, CodePlex, GoogleCode, ect, site where we could mantain a record of any client libraries people develop?
Just a thought. |
|
#10
|
||||||
|
||||||
|
Re: API Client Development
I'm not sure we're at that level of complexity yet, but it is an idea worth keeping in mind if the number starts to get big or there is much need to change them.
![]() |
|
#11
|
||||
|
||||
|
Re: API Client Development
This is very cool stuff...I'm using the TBA API now for the Boilermaker Regional website, and I hope to expand our usage once I have some time to explore all of the possibilities...
I'll try and pay it forward with a Python connector...I've only had my API key for 12 hours or so, so I haven't tested this extensively but it should work fairly well. If you notice any bugs or anything that could be improved, let me know!Thanks! |
|
#12
|
|||
|
|||
|
Re: [TBA]: API Client Development
Quote:
The official PHP client is serverely lacking in error checking, for instance, if the API server returns a blank XML (XHTML, say) document, then no error will pop up. I'll keep it simple, my edits are public domain. I have not tested this, but it should work. Code:
function tba_send_request($method, $arguments=array()){
$api_key = ""; //replace with your API key
$api_url = "http://thebluealliance.net/tbatv/api.php"; //this should not change
// prepend the default array elements
$arguments = array('version'=>1, 'api_key'=>$api_key,'method'=>$method) + $arguments;
$file = $api_url.'?'.http_build_query($arguments);
$xml = simplexml_load_file($file);
// check for a broken connection, bad XML, etc
if($xml===false) throw new Exception("Bad XML returned getting file $file");
// check for errors thrown by the server
if (count($xml->error)){
throw new Exception("Error generated by API server: ".(string)$xml->error->text, (int)$xml->error->code);
}else{
return $xml;
}
}
Last edited by Nibbles : 25-03-2008 at 17:16. Reason: Added link |
|
#13
|
||||
|
||||
|
Re: [TBA]: API Client Development
I've been experimenting with the API, and for compatibility reasons I've created a .net 2.0 port of my .net 3.5 client. I haven't done any performance comparisions, so don't ask about that.
The demo console app also has some small improvments, but nothing too major. EDIT: Added license and readme to source file, and added compiled version. Last edited by EHaskins : 28-03-2008 at 21:21. Reason: Changed files |
|
#14
|
|||
|
|||
|
Re: [TBA]: API Client Development
Not to start a flame war, but no one cares about .net or Microsoft's open-source-wannabe-license. Public domain or a simple "Redistribute alike" clause offers more then enough protection.
<rant>Look at Kevin Watsons code, the entire license is three sentences, including "Thanks." And even if we did care about a bigo license, no one uses .net for anything anyways, since the number of platforms I can use it on I can count on one hand, no, one finger!</rant> On a slightly related note, I was going to code up a test console in php-gtk, but there wasn't enough room to attach php5.dll</irony> <edit>I remember why I came here: You are not having any problems with server load at all? It takes a measurable amount of time to ping the page for data, are we interested in caching the data at all? You are going to need to send HTTP caching headers first, which I do not see currently (i.e. HTTP/1.1 304 Not Modified)</edit> Last edited by Nibbles : 29-03-2008 at 00:05. |
|
#15
|
||||
|
||||
|
Re: [TBA]: API Client Development
I don't normally reply to people when they post something totally unrelated to the current thread, but I thought I'd do you a favor and correct some of your bigger misconceptions.
Quote:
MsPL just happened to be the first license I saw which had terms I agreed with. Quote:
Quote:
On a side note, did you download my code just so you could complain, or are you a closet .net fan? * Currently in beta. Last edited by EHaskins : 29-03-2008 at 00:39. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [TBA]: Issues with TBA API | FRANK(WGH) | The Blue Alliance | 7 | 17-03-2008 11:39 |
| [TBA]: Schedules and TBA API | proegssilb | The Blue Alliance | 3 | 09-03-2008 15:55 |
| [TBA] The Blue Alliance API | cjelly | The Blue Alliance | 9 | 24-02-2008 23:37 |
| [TBA] TBA Presents... Soldering and Multimeter Tutorials | Greg Marra | General Forum | 0 | 27-01-2007 20:15 |
| What FTP Client do you use? | sanddrag | Website Design/Showcase | 31 | 18-05-2005 20:57 |