GraphQL is spec out of Facebook describing a new way to write HTTP APIs. Unlike REST, it gives control to the client. Clients query for the data they want, and servers respond by returning exactly -- and only -- the requested data. This has the advantage of letting clients imagine new ways to use data without the need for additional server side development.
GraphQL APIs are described by constructing a strongly typed schema against which queries can be both constructed and validated. This strongly typed schema maps quite well to Scala's type system, and there is a fantastic Scala implementation of the GraphQL spec in Scala called Sangria. In this talk, I'll show some real life examples from our startup justifying why you might want to use GraphQL instead of standard REST. I'll execute some queries against our own API, which ought to illuminate how it works and why it's great. I'll discuss the eco-system around GraphQL, and finally walk through, and do a quick tutorial on how to turn your Scala case classes and functions into a full-blown schema and API.