by Dave Campbell » Sat Aug 09, 2008 6:39 pm
I do have a request, and I guess it falls partly under option five, and partly under option three. Though I am not certain what both of these items encompass based on the information above, so forgive me if I am asking for what you are planning currently.
To start, I want to offer my opinion on option three. My first reaction is that I do not want to surrender control over registration for the competitions I host. I use my registration to create fairly accurate schedules based on algorithms using the number of people in each event, number of timing stations, average solve time per event, number of solves per event etc. I also create printed name tags for all competitors. When someone registers on our site, I save it in a specific format that I can port around easily to the various applications I have made to streamline the process on my end. If you did force organizers to host registration on the WCA site, I would need access to the data in a common format (XML) in an on-demand basis.
Now, onto my initial request. I have touched upon this in another thread, but for consistency I will recap it here for those that did not read it elsewhere. Basically, I want access to the WCA database using the REST architecture approach. It would function similarly to how Youtube, among many other sites, provides assess to their data. Under this scenario, I would send a request to the WCA server, for example:
http://www.worldcubeassociation.org/query.php?Key=12345&search=Person¶m=Dave+Campbell
Where the Key is a unique ID given to me by the WCA to let me have access to the data. Search is the resource I am targeting, in this case a person (could be a competition, event, etc), and the param is the data to be used to perform the search.
So far this is very similar to how the WCA site functions, minus the Key. Only currently, I am served up a complex XHTML page as the result which may or may not contain the information for which I am searching. Under this new approach, I would be send back an XML response with a standard header section that tells me if the request succeeded or failed. The body would be either empty if it failed, or contained marked up information of my results.
How much data contained in the response is up to the WCA. At a minimum, I would expect all data that we require for a successful registration (full name, country, WCA ID, DOB, sex). It would be even better if I could get access to all their records, like is returned when you view someone’s WCA profile page. And like I alluded to above, it would be great if we could query other things beyond just a person, but all results from a past competition.
Now, I understand that there is a concern about giving away the information. But it is currently freely available anyway, only in an XHTML form. I have successfully managed to parse it already, and I am not the only one who can do it. If someone wanted to do this under the current set up, they could. However, using the key-based approach I mentioned, you could provide a rich and easy means to gain access to this information in a controlled environment. The WCA is deciding to whom they will give a key. The key essentially be coming a membership ID. In fact, I will go on record to say that I would pay a nominal fee for the key on an annual basis. The WCA could generate some revenue from making this freely available like this.
I would be willing to work with you to architect this approach if the WCA is interested in making this available, though I think it is pretty straight forward. I can provide examples of the XML response if required, or something else that would be useful to implement this if desired. I just feel that this information is really great, and it would be an asset to have access to it. The web seems to be going towards this approach already, so I would love to see the WCA willingly employ it.