“BUILD STUFF” is a Software Development Conference for people who actually build stuff. We bring world-class speakers, letting them share about the latest developments, trends and innovations, as well as new directions in software development. Since launching in 2012, it’s really caught on quickly.

Recognized by developers from all over Europe, international Software Development Conference Build Stuff’15 Lithuania will feature 3 days (18-20 Nov’15) of conference sessions and 2 days (21-22 Nov’15) of workshops.

Back To Schedule
Wednesday, November 18 • 11:50 - 12:45
(SLIDES) Ali Kheyrollahi @aliostad - 5 Anti-Patterns in designing APIs

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

This talks elaborates on the Client-Server tenet of REST which focuses on separation of concerns between the client and the server. In the first third of the talk, I will talk about what the ideal client and servers are and examples of how their responsibilities. I will touch on how the word Server has lost its meaning of "serving" and the client has been overshadowed by the focus to the API. I will also compare the API to a restaurant and how its menu is the API's REST resources.

In the rest of the talk, I look at some important anti-patterns commonly seen in the industry (each with at least one example):

1) Chauvinist Server: designing the API from server's perspective failing to hide its complexity behind its API (API designed from the server's perspective)
2) Demanding client: client enforcing its special need onto the signature of the API (certain client's limitation becomes server's default behaviour)
3) Transparent Server: server exposing its internal implementation to its clients (server's underlying or private domain bleeds into the public API)
4) Presumptuous Client: The client assuming the role of a server and engage in taking responsibilities that cannot guarantee
5) Assuming Server: Server that assumes the responsibility of tailoring the response based on what it assumes client is (e.g. browser sniffing)

avatar for Ali Kheyrollahi

Ali Kheyrollahi

Solutions Architect, ASOS
A distributed systems practitioner and machine learning enthusiast, Ali currently is a solution architect building web-scale solutions. A performance and scalability junkie, he loves HTTP, API design, and business-modeling DDD-style. He is an author, blogger and OSS contributor and... Read More →

Wednesday November 18, 2015 11:50 - 12:45 EET
3. Lambda

Attendees (0)