"Move fast and break things"
Mark Zuckerberg, Facebook
Slide 5
Slide 5 text
"Each version will remain for at least 2
years from release."
Facebook
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
Move Fast, Break Nothing
Slide 9
Slide 9 text
Designing API by exposing
implementation details
Slide 10
Slide 10 text
API Evolvability
Slide 11
Slide 11 text
Ability to change
implementation details
Slide 12
Slide 12 text
Learn about controls, relations and
transitions at run-time
Slide 13
Slide 13 text
Adding new features
Slide 14
Slide 14 text
Remove features
Slide 15
Slide 15 text
Ability to change implementation
details
4 Change fields used in forms
4 Change validation of attributes in forms
4 Change URIs of resources (/polls/{id} -> /
questions/{slug})
4 Change HTTP methods (PUT -> PATCH)
4 Change the content-type
hyperdrive(apiary: "pollsapi") { result in
// Explore API feature availability
}
Slide 22
Slide 22 text
hyperdrive.enter("https://polls.apiblueprint.org/") { result in
// Explore API feature availability
}
Slide 23
Slide 23 text
Representor
Slide 24
Slide 24 text
if let questions = representor.links["questions"] {
// The API offered us a link to questions
} else {
// Gracefully handle when this feature is missing
}
Slide 25
Slide 25 text
hyperdrive.request(questions) { result in
}
Slide 26
Slide 26 text
representor.links
Slide 27
Slide 27 text
representor.transitions
Slide 28
Slide 28 text
if let create = representor.transitions["create"] {
// API supports creation
} else {
// Feature is missing
// Let's not show the create button in our UI
}