CodeMash 2.0.1.0 REST Interfaces

This year's CodeMash website has two URI's that expose CodeMash Information:

The main news feed is already exposed via RSS (http://www.codemash.org/rss) but we may add a REST interface for that as well.

Session Information

Here's an example XML response for a single session (note that the <Abstract> content has been removed for brevity):

<Sessions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Session>
    <URI>/rest/sessions/The-case-for-Griffon-developing-desktop-applications-for-fun-and-profit</URI>
    <Title>The case for Griffon: developing desktop applications for fun and profit</Title>
    <Abstract>...</Abstract>
    <Start>0001-01-01T00:00:00</Start>
    <Difficulty>Beginner</Difficulty>
    <SpeakerName>Andres Almiray</SpeakerName>
    <SpeakerURI>/rest/speakers/Andres-Almiray</SpeakerURI>
  </Session>
</Sessions>

The <URI> node contains a URI that will return a single session.  The <Start> node is not set yet since the sessions have not been scheduled.  Once scheduling is complete, it will be available from this feed.

Speaker Information

Here's an example XML response for a single speaker (again, the <Biography> content has been removed for brevity):

<Speakers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Speaker>
    <Name>Chris Adamson</Name>
    <Biography>...</Biography>
    <Sessions>
      <SessionURI>/rest/sessions/Oh-Crap-I-Forgot-or-Never-Learned-C</SessionURI>
      <SessionURI>/rest/sessions/How-Do-You-Do-That-on-iPhone</SessionURI>
    </Sessions>
    <TwitterHandle />
    <BlogURL />
  </Speaker>
</Speakers>

Most speakers only have one session, but some have multiple.  You'll notice that the TwitterHandle and BlogURL for most of the speakers is empty.  That's because we forgot to ask for that information during the speaker submission process (oops!).  We're in the process of collecting the information and as we get it, we'll update our database and the information will be exposed to you.

Supported Formats

Right now, we support XML (default) and JSON formats.  If you don't add any extension to the REST URI's (or use ".xml") you'll get XML-formatted data (like above).  Use ".json" to return a JSON result.  We could support HTML – perhaps a simple <table> that dumps the information?  Let me know if you think that would be useful.

Technorati Tags: ,,

Is There An App For That?

Do you plan on using these API's to make some cool CodeMash apps?  Keep us updated on your progress by leaving a comment here, blogging about it or via Twitter using the hashtag #CodeMash.  We're looking forward to seeing what you build!

5 Comments

  • Hi, I am doing a codemash session scheduller so attendants can plan their days, maybe share their calendars download as iCal, email them, etc.

    I notice that the sessions don't have the actual date (I guess they are still working on that and I can plan for when will be updated.)

    The other thing I notice is that in the codemash website you can filter sessions by technology, but the API does not expose that data. Are you planning in doing so?

    And finally, the Precompiler sessions don't seem to be included, will that information be available?

    Thanks, so much, and sorry if I sounded demanding, wasn't the idea at all.

    Regards, Hernan.

  • Thanks Hernan.

    The scheduling is not complete yet so that's why the dates are set. Rumor has it that the scheduling is going to be announced sometime next week.

    The "Technology" value will be added to the feed within the next day or so. Sorry about that!

    I'll see if we can easily get the Precompiler stuff into a REST feed.

  • I'd love to see a location field added. I'm not if you'll have that data right away, but it would make it more useful for creating schedules.

  • No need to apologize. Thank you so much for this.

  • Technology and Room added to REST feed:

    http://weblogs.asp.net/psteele/archive/2009/12/07/codemash-rest-endpoints-updated.aspx

Comments have been disabled for this content.