Schedule REST interface
People who would like to write a Devoxx schedule application can now use our REST interface, available @ http://cfp.devoxx.com/rest/v1
Comments and suggestions are always welcome.
Hint: You can use the REST Client for Firefox plugin to test the methods.
Available Clients
Below you can find a list of available schedule clients that are consuming the available REST interface.
HTML5
You can test drive a beta HTML5 client, developed by Stephan Janssen, which works on the iPhone, iPad, iPod Touch and Android phones @ http://cfp.devoxx.com/mobile/.
The mobile client uses offline and local storage HTML5 features, CSS and jQuery/JavaScript consuming the available REST/JSON methods through AJAX. You can now also mark your favorite talks and create and share your own Schedule!
![]() |
![]() |
![]() |
![]() |
Android
Filip Maelbrancke developed an open-source native Android Scheduling client for Devoxx but this was before the REST API existed.
The code is available on Google Code, anybody interested in porting this app?
![]() |
![]() |
Griffon
Andres Almiray is currently working on a Scheduling client using the Griffon framework (an open source RIA framework which leverages the Groovy programming language). The code is available @ GitHub.
![]() |
![]() |
![]() |
JavaFX
Joeri Sykora and Johan Vos have started a JavaFX client, the project is open sourced and hosted on BitBucket.
![]() |
![]() |
Vaadin
Teemu Pöntelin developed a Devoxx schedule client using Vaadin. Vaadin is an open source web application framework for rich Internet applications. Ajax technology is used at the browser-side to ensure a rich and interactive user experience. On client-side Vaadin is built on top of and can be extended with Google Web Toolkit.
Click image to see the application in action, source code available at Vaadin.
Native iPhone client
Native iPhone client developed by Arexo, available on Apple Store. What's really nice is that this client has also a local storage MySchedule!
|
|
|
|
|
iText PDF Client
Bruno Lowagie (founder of iText) is working on a client that generates a PDF conference schedule which we'll print and insert in your welcome bag! When ready this project will be hosted on Google Code.
Bruno will also talk about this project (and lost more) during his Devoxx University session.
Flex/AIR
TBA
REST URIs
The listed REST URIs return all JSON responses.
Base URI
/rest/v1/
- GET : Returns a collection of available root-uri's.
- GET Response :
[
{"uri":"http://cfp.devoxx.com/rest/v1/events"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/presentations"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/presentations/search?title={title}
&abstract={abstract}&speaker={speakerName}&track={track}&type={presentationType}&experience={experienceLevel}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/presentations/{presentation-id}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/speakers"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/speakers/{speaker-id}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/schedule"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/schedule/day/{number-of-day}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/schedule/rooms"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/schedule/day/{number-of-day}/room/{room-id}"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/tracks"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/presentationtypes"},
{"uri":"http://cfp.devoxx.com/rest/v1/events/{event-id}/experiencelevels"}
]
Get Events
/events
- GET : returns all active events (events that have taken place are not listed)
- Get Response :
[{"id":1,"from":"2010-11-15","to":"2010-11-19",
"enabled":true,"location":"MetroPolis",
"description":"The annual BeJUG international java conference.","name":"Devoxx 2010"}]
Only one event is shown because for the moment we have only created one
Get Event Details
/events/{event-Id}
- GET : Returns detailed event info for given event identifier.
- GET Response :
[{"id":1,"from":"2010-11-15","to":"2010-11-19",
"enabled":true,"location":"MetroPolis",
"description":"The annual BeJUG international java conference.","name":"Devoxx 2010"}]
Get Presentations per event
/events/{event-Id}/presentations
- GET : Get all presentations for event-id
Get Presentation details
/events/presentations/{presentation-Id}
- GET : returns the presentation details. Users get status code HTTP/401 "Unauthorized" when presentation is not approved.
| To support multiple speakers per presentation we have added a JSON array named 'speakers'. We advice you to use this to show the related speaker(s) info. |
Get Speakers per event
/events/{event-Id}/speakers
- GET : Returns list of confirmed speakers
| The speakers JSON response now also includes a speaker image URI! |
Get Event Schedule
/events/{event-Id}/schedule
- GET : Returns the full schedule for the selected event
- GET Response :
[{"id":1,"fromTime":"2010-11-15 09:30:00.0","code":"D10_U_15_08_01","toTime":"2010-11-15 12:30:00.0","room":"Room 8"},
{"id":2,"fromTime":"2010-11-15 09:30:00.0","code":"D10_U_15_05_01","toTime":"2010-11-15 12:30:00.0","room":"Room 5"},
{"id":3,"fromTime":"2010-11-15 09:30:00.0","code":"D10_U_15_04_01","toTime":"2010-11-15 12:30:00.0","room":"Room 4"},
{"id":4,"fromTime":"2010-11-15 09:30:00.0","code":"D10_U_15_09_01","toTime":"2010-11-15 12:30:00.0","room":"Room 9"},
{"id":5,"fromTime":"2010-11-15 08:00:00.0","code":"Breakfast","toTime":"2010-11-15 09:30:00.0","room":"Hollywood Lounge"},
{"id":6,"fromTime":"2010-11-15 12:30:00.0","code":"Lunch","toTime":"2010-11-15 13:30:00.0","room":"Hollywood Lounge"},
{"id":7,"fromTime":"2010-11-15 13:30:00.0","code":"D10_U_15_08_02","toTime":"2010-11-15 16:30:00.0","room":"Room 8"},
{"id":8,"fromTime":"2010-11-15 13:30:00.0","code":"D10_U_15_05_02","toTime":"2010-11-15 16:30:00.0","room":"Room 5"},
{"id":9,"fromTime":"2010-11-15 13:30:00.0","code":"D10_U_15_04_02","toTime":"2010-11-15 16:30:00.0","room":"Room 4"},
{"id":10,"fromTime":"2010-11-15 13:30:00.0","code":"D10_U_15_09_02","toTime":"2010-11-15 16:30:00.0","room":"Room 9"},
{"id":11,"fromTime":"2010-11-15 16:30:00.0","code":"Coffee break","toTime":"2010-11-15 16:45:00.0","room":"Hollywood Lounge"},
{"id":12,"fromTime":"2010-11-15 16:45:00.0","code":"D10_T_15_08_01","toTime":"2010-11-15 17:15:00.0","room":"Room 8"},
{"id":13,"fromTime":"2010-11-15 16:45:00.0","code":"D10_T_15_05_01","toTime":"2010-11-15 17:15:00.0","room":"Room 5"},
{"id":14,"fromTime":"2010-11-15 16:45:00.0","code":"D10_T_15_04_01","toTime":"2010-11-15 17:15:00.0","room":"Room 4"},
{"id":15,"fromTime":"2010-11-15 16:45:00.0","code":"D10_T_15_09_01","toTime":"2010-11-15 17:15:00.0","room":"Room 9"}]
The full Devoxx 2010 schedule items are now available.
Get Event Schedule per day
/events/{event-Id}/schedule/day/1
- GET : Returns the schedule for day one for the selected event
/events/{event-Id}/schedule/day/2
- GET : Returns the schedule for day two for the selected event and throws status code HTTP/405 "Method Not Allowed" when day two does not exist.
| To support multiple speakers per presentation we have added a JSON array named 'speakers'. We advice you to use this to show the related speaker(s) info. |
Search Presentations
/events/{event-id}/presentations/search?title={title}
&abstract={abstract}&speaker={speakerName}&track={track}&type={presentationType}&experience={experienceLevel}
- GET : Returns approved presentations for a given event and used filter. The possible filter parameters are presentation title, abstract, speaker name, track, type of presentation and experience level.
To know which tracks, presentation types and experience levels exist you can call the following REST methods :
/events/{event-id}/tracks
/events/{event-id}/presentationtypes
/events/{event-id}/experiencelevels


















