REST Easy with Deployd

download REST Easy with Deployd

of 25

  • date post

  • Category


  • view

  • download


Embed Size (px)


Deployd is an open source platform, built on NodeJS and MongoDB, that allows you to create custom JSON API's in minutes, not days. In this brief talk, Boydlee will explain what the Deployd platform is and show you how it really is the simplest way to design, build and manage a REST API. We'll create our collections and API interfaces in real time, extending them with custom JavaScript events and explain how you can further customise your Deployd installation using standard NodeJS modules.

Transcript of REST Easy with Deployd

  • 1. Who am I?Author of Appcelerator Titanium CookbookAuthor of Titanium Best PracticesRun a Digital Agency in NorwichFormer .NET Developer (dont hate me)Run tiConf a Titanium & JavaScript MobileConference in the EU, US and Australia
  • 2. What is Deployd?In a nutshellDeployd allows you to design, build and scaleAPIs for web and mobile apps in minutes.Its free, and open source.
  • 3. It even comes with a full dashboard system toallow you to create and manage your collectionAPIs, create Events and insert/edit datarecords.Its built on top of Node.JS and MongoDB soyou know its going to be fast, and scalable.
  • 4. Create RESTful APIsthrough designDeployd is built around a series of REST callsthat lets you create CRUD collections(GET, DEL, PUT, POST).
  • 5. The Deployd Dashboard
  • 6. Scripted Logic throughEventsIt uses Events for each of the REST methodsto allow you to intercept calls and inject yourown business logic code.
  • 7. Events Logic Screen
  • 8. Access OtherCollections & JoinResultsYou can use the built-in DPD library to accessother collections in your Deployd database andscript business logic based on those queries
  • 9. Accessing Collections viaDPD
  • 10. Full User login, logoutand creation support outof the boxYou can use the built-in user collection type toautomatically manage your systemlogins, logouts and user creations.
  • 11. You can restrict accessto certain REST calls bythrowing cancel
  • 12. As well as throwingerrors, determining if aproperty has changed &moreprotect() = dont allow updates for this propertyprevious() = object containing previous item valueschanged() = informs if a property item was updatedhide() = hides a property in your REST responseerror() / errorif() = adds an error message to theresponse
  • 13. Use Modules to performtasks that Deployddoesnt already do..Theres a number of Deployd modules alreadyavailable for sending e-mail and get files fromAmazon S3, amongst other things.Theyre based on Node Packages, so you can re-use any Node.JS package with NPM!
  • 14. So, what is it good for?A Case StudySmarter Learn Education Portal & Analytics
  • 15. Smarter Learn
  • 16. The BriefBuild a system that was:Able to create APIs on the flyHighly scalable with high availabilityCould easily be integrated into both web and mobileAnd above all, cheap!
  • 17. How we did itCloud servers are amazing.Built on top of Linux Cloud servers via RackspaceExternal MongoDB connectionWe can scale as required (e.g. on launch of a newgame)Allows us to easily install Load BalancingAnalytics get stored long term into a MySQL Cloudserver
  • 18. Overcoming obstaclesNothing is perfect.We built a custom token-based authentication system,We extended Forever scripts to ensure better up-time,Long running API calls can use significant temporarymemory dont run Deployd without at least 1GB+ RAM.IE 8.Node modules allow you to easily overcome any obstacles!
  • 19. The end resultThousands of API calls per hourEasily built into a Responsive Website and an appto come using DeploydsAppcelerator Titanium Module
  • 20. The end result
  • 21. The end result
  • 22. Even if its not your firstchoice for productionIt is an amazing quick and easy way to build outAPIs for websites, mobile apps or justprototyping ideas.
  • 23. Theres a tonne ofexamples atDeployd.comTheres plenty of sample apps at thatshow what you can do with the system, includingintegration with AngularJS and other Node.JS basedsystems.GitHub Source
  • 24. Super Awesome FastPrototype Time