Techorama 2017: REST, Just the Hard Parts Slides & Code

I just finished my Techorama 2017 session.  Wondering what it was all about?

REST is… a bit of a wonder really. It’s probably the most misused term for describing APIs, as most RESTful APIs that are called RESTful aren’t really RESTful. That’s because REST is an architectural style that isn’t that easy to correctly implement. In this advanced session, we’ll dive into the more challenging parts of REST: from using the correct media types (and why that’s so important) over handling collection resource creation in one go, handling pesky CalculateTotal()-RPC-like functions, method safety and idempotency, right up to implementing HATEOAS support. And we’ll do all of this using ASP.NET Core.

Thanks everyone for attending, and thanks for showing up with so many :-) For those who are interested, the demo code can be found at my GitHub, and the slides can be downloaded from my OneDrive

Happy coding! :-)

 Tweet about this on TwitterShare on LinkedInShare on Facebook

One Comment

Alain Van Hout

Hi there, I was able to follow your presentation at Techorama. I can definitely recommend it to anyone who wants more than just the introductions to REST that you can find everywhere.

One thing you talked about it use-cases where your inclined to (but should refrain from) resorting to rpc-style endpoint. As you noted, it’s relatively hard to come up with examples of that where it’s less than straightforward to come up with an idiomatic REST approach. One example that I thought of later, and would like your feedback on: let’s say you want to POST (or PUT, depending on the specifics) a license activation. In that case, you likely want to convey to your UI user whether the information they specified is valid for the license in question. So the call you do will not change any server state, but will require a request body. As such, a POST or PUT seem out of place, but a GET typically does not have a request body. Any ideas?

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *