Web-API’s ontwerpen
Paperback Nederlands 2018 1e druk 9789463560832Samenvatting
Een van de zaken die software-engineers het meest voldoening schenken is de ontwikkeling van web-API’s voor applicatieontwikkelaars. Een populaire API bouwen met een bloeiend ecosysteem van ontwikkelaars is een grote uitdaging. Met behulp van deze praktische handleiding leren ontwikkelaars, productmanagers, ontwerpers, professionals in relatieontwikkeling en tech leads omgaan met de complexe besluitvormingsprocessen rond design, schaling, marketing en ontwikkeling van interoperabele API’s.
De auteurs, Brenda Jin, Saurabh Sahni en Amir Shevat, geven uitleg over de theorie achter API-ontwerp, met praktische oefeningen voor de bouw van uw eigen web-API en het daaropvolgende beheer als de API in productie is. U leert tevens hoe u een ecosysteem van ontwikkelaars rond uw API opzet en onderhoudt. Dit boek bevat deskundige adviezen, werkbladen, checklists en casestudies van ondernemingen, waaronder Slack, Stripe, Facebook, Microsoft, Cloudinary, Oracle en GitHub.
Uit de inhoud:
- Een overzicht van request-response en event-driven API-designparadigma’s.
- Beproefde ontwerpmethoden voor een API die tegemoetkomt aan de wensen van de gebruikers.
- Sjabloongebruik voor het designproces van API’s.
- Web-API’s schalen voor ondersteuning van een groeiend aantal API-aanroepen en use-cases.
- Uw API aanpassen aan de veranderingen in uw product of business.
- Ontwikkelaars ondersteunen met hulpmiddelen zoals API-documentatie, voorbeelden en tools.
“Met het creëren en ondersteunen van een openbare API neemt u een grote verantwoordelijkheid. Met dit boek leert u de valkuilen veel gemakkelijker te omzeilen en een bloeiend ecosysteem van ontwikkelaars op te bouwen.” – Cal Henderson (CTO bij Slack)
“De enige, meest omvattende introductie tot API-theorie, ontwerp, architectuur en succes, die er te krijgen is.” – Richard Hyndman (tech lead bij Google Launchpad Accelerator)
“Of u als ontwikkelaar nu API’s maakt of gebruikt, dit boek is een must.” – Yochai Kiriaty (Group Program Manager Microsoft AI & Research)
Specificaties
Lezersrecensies
Inhoudsopgave
Definitie van API 2
Waarom hebben we API’s nodig? 3
Wie zijn onze gebruikers? 3
De businesscase voor API’s 5
API’s voor interne ontwikkelaars eerst, externe ontwikkelaars als tweede 6
API’s voor externe ontwikkelaars eerst, interne ontwikkelaars als tweede 7
API’s als product 9
Wat maakt een API goed? 9
Ter afsluiting 11
2. Ontwerpmodellen 13
Request-response-API’s 14
Representational State Transfer 14
Remote Procedure Call 18
GraphQL 20
Gebeurtenisgestuurde API’s 25
WebHooks 25
WebSockets 28
HTTP Streaming 30
Ter afsluiting 32
3. API-beveiliging 33
Authenticatie en autorisatie 34
OAuth 35
Tokens genereren 37
Scopes 39
Validatie van tokens en scopes 41
Het verlopen en vernieuwen van tokens 43
Autorisaties inventariseren en intrekken 45
Praktische tips voor OAuth 46
Beveiliging van WebHooks 50
Verificatietokens 50
Verzoeken ondertekenen en WebHook-handtekeningen 51
Mutual Transport Layer Security 52
Thin Payloads en API Retrieval 53
Beproefde methoden voor WebHook-beveiliging 54
Ter afsluiting 54
4. Best practices voor ontwerp 57
Ontwerpen voor echte toepassingen 58
Ontwerpen voor een geweldige developer experience 59
Maak uw API snel en gemakkelijk om mee te beginnen 59
Werk naar consistentie 62
Maak probleemoplossing eenvoudig 63
Maak uw API uitbreidbaar 68
Ter afsluiting 72
5. Ontwerp in de praktijk 75
Inleiding 76
Scenario 1 77
Definieer bedrijfsdoelstellingen 77
Opzet belangrijkste user stories 80
Kies de technologische architectuur 81
Schrijf een API-specificatie 84
Scenario 2 90
Definieer het probleem 90
Opzet belangrijkste user stories 91
Kies de technologische architectuur 91
Schrijf een API-specificatie 92
Valideer uw beslissingen 95
Ter afsluiting 98
6. API’s schalen 99
Inleiding 100
Doorvoercapaciteit opschalen 101
Knelpunten zoeken 101
Rekenresources toevoegen 104
Database-indexen 105
Caching 106
Veeleisende bewerkingen asynchroon uitvoeren 109
Beproefde methoden voor het opschalen van doorvoer 109
Uw API-ontwerp verder uitwerken 110
Introductie van nieuwe patronen voor gegevenstoegang 110
Nieuwe API-methoden toevoegen 113
Ondersteuning van bulkeindpunten 116
Nieuwe opties om resultaten te filteren 116
Beproefde methoden voor verdere uitwerking van het API-ontwerp 118
Paginering in API’s 119
Offset-gebaseerde paginering 119
Cursor-gebaseerde paginering 121
Beproefde methoden voor paginering 124
Frequentiebegrenzing in API’s 125
Wat is frequentiebegrenzing? 126
Implementatiestrategieën 129
Frequentielimieten en ontwikkelaars 135
Best practices voor frequentiebegrenzing 138
SDK’s voor ontwikkelaars 140
Ondersteuning voor frequentiebegrenzing 140
Ondersteuning voor paginering 140
Gzip 141
Vaak gebruikte gegevens cachen 141
Foutafhandeling en exponentiële back-off 141
Praktische tips voor een SDK 142
Ter afsluiting 143
7. Omgaan met verandering 145
Op naar consistentie 146
Geautomatiseerde tests 150
API-beschrijvingstalen 152
Compatibiliteit met eerdere versies 158
Planning en communicatie van verandering 160
Communicatieplan 160
Toevoegen 163
Verwijderen 164
Versiebeheer 166
Ter afsluiting 176
8. Strategie voor een ecosysteem van ontwikkelaars 179
Inleiding 180
Ontwikkelaars, ontwikkelaars en ontwikkelaars 181
De hobbyist 182
De hacker 182
De technisch onderlegde zakenman 183
De professionele ontwikkelaar 183
En nog veel meer 184
Een ontwikkelaarsstrategie opstellen 185
Segmentatie voor ontwikkelaars 185
De waardepropositie destilleren 189
De ontwikkelaarstrechter 192
De huidige en toekomstige status in kaart brengen 194
De tactiek schetsen 196
Metingen doen 200
Ter afsluiting 202
9. Resources voor ontwikkelaars 203
API-documentatie 204
Aan de slag 204
API-referentiedocumentatie 207
Lessen 208
Veelgestelde vragen 209
Landingspagina 211
Changelog 212
Servicevoorwaarden 213
Codevoorbeelden en -fragmenten 215
Codevoorbeelden 215
Snippets of codefragmenten 217
Software development kits en frameworks 218
SDK’s 219
Frameworks 221
Ontwikkeltools 223
Foutopsporing en probleemoplossing 223
Sandboxes en API-testers 224
Media 225
Video’s 225
Spreekuur 226
Webinars en online training 227
Bijdragen uit de gemeenschap 227
Ter afsluiting 229
10. Programma’s voor ontwikkelaars 231
Uw ontwikkelaarsprogramma’s definiëren 232
Breedte- en diepteanalyse 232
Diepe ontwikkelaarsprogramma’s 233
Toppartnerprogramma 234
Bètaprogramma 236
Design sprints 238
Brede ontwikkelaarsprogramma’s 240
Meet-ups en communityevenementen 240
Hackathons 242
Spreken tijdens evenementen en evenementsponsoring 243
Train-the-trainer en ambassadeurprogramma’s 244
Onlinevideo’s en streaming 245
Ondersteuning, forums en Stack Overflow 246
Kredietprogramma 247
Meting van ontwikkelaarsprogramma’s 247
Ter afsluiting 249
11. Conclusie 251
A API-ontwerpwerkbladen 253
Definieer bedrijfsdoelstellingen 254
Het probleem 254
De impact 254
Belangrijkste user stories 254
Technologiearchitectuur 254
API-specificatiesjabloon 255
Titel 255
Auteurs 255
Probleem 255
Oplossing 255
Implementatie 255
Authenticatie 255
Andere dingen die we hebben overwogen 255
Invoer, uitvoer (REST, RPC) 256
Gebeurtenissen, payloads (gebeurtenisgestuurde API’s) 256
Foutmeldingen 256
Feedbackplan 257
Checklist voor implementatie van de API 257
Index 259
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan