8 Designing user-friendly data

 

This chapter covers

  • Choosing and designing ready-to-use data
  • Choosing atomic data types and formats
  • Organizing data in objects and arrays and choosing granularity
  • Designing names
  • Designing consistent and interoperable data

Imagine a washing machine indicating "EC 39660" once started. Users must read the instruction manual to understand that the end of cycle time is represented by the number of seconds since 00:00. Still, even when knowing that, they must do some math to get meaningful information. While the washing machine fulfills users' needs (washing clothes and indicating when it’s done), this information makes it not easy to understand and use: it’s not user-friendly. An explicit message such as "Washing ends at 11:01 am" would be more helpful.

The same goes for APIs. Unhelpful data, such as {"ec": 39660}, can make developers' work more complicated than it should be, resulting in many questions, complex code, risks of errors and imprecision, and lengthy development. Fulfilling needs is a good start, but it’s only the first layer of API design (see section 1.6.2); we must also ensure data and any other aspect of our APIs are user-friendly. It helps create straightforward APIs that developers can use intuitively and even love.

8.1 Introducing user-friendliness in the context of API design

8.1.1 Overviewing API user experience

8.1.2 How API design user-friendliness contributes to user experience

8.2 What makes data user-friendly

8.2.1 User-friendly data is simple

8.2.2 User-friendly data is clear

8.2.3 User-friendly data is helpful

8.2.4 User-friendly data is intuitive

8.2.5 User-friendly data is interoperable

8.3 When and how to design user-friendly data

8.4 Selecting and crafting ready-to-use data

8.4.1 Choosing simple and meaningful but useful data

8.4.2 Adding supporting data to ease and secure interpretation

8.4.3 Adding processed data to reduce consumer’s effort

8.4.4 Choosing well-known or standard resource identifiers

8.4.5 Choosing well-known or standard data

8.5 Choosing atomic types and formats

8.5.1 Pondering formatting numbers in strings

sitemap