SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Milano • 27 settembre 2019
API Design
I «must have» per governare un’Architettura Headless
Denis Signoretto - IT Architect & Senior Project Manager
2
Milano • 27 settembre 2019
3
Milano • 27 settembre 2019
Milano • 27 settembre 2019
A step back, first …
5
Milano • 27 settembre 2019
API vs Web Services
N o silo es & Multiple Co nsumers
6
Milano • 27 settembre 2019
API
API vs Web Services
Reuse
7
Milano • 27 settembre 2019
API as a Product
Life -Cycle
Milano • 27 settembre 2019
API as a Product
Milano • 27 settembre 2019
Milano • 27 settembre 2019
SIDE A
Who a re the API custo mers ?
10
Milano • 27 settembre 2019
Developers
Wha t a re their needs ?
11
$> Accessible and discoverable API
$> Documentation
$> Standards
$> Adoption of known best practices and conventions
$> Sandbox
$> Examples
Milano • 27 settembre 2019
12
$> Accessible and discoverable API
$> Documentation
$> Standards
$> Adoption of known best practices and conventions
$> Sandbox
$> Working Examples !!!
Milano • 27 settembre 2019
Milano • 27 settembre 2019
SIDE B
Is there a n «API Pro duct M a na g er»?
14
Milano • 27 settembre 2019
API Design
is an important pillar
15
Milano • 27 settembre 2019
How to put API Design
into Practice ?!?
16
Milano • 27 settembre 2019
Case History Journey
in do ma in M o deling & Rest API Desig n
17
Milano • 27 settembre 2019
API Design approach
A P I D e s i n g
• Consumer-Oriented Design
- “Outside-in” approach
- API First Design
• Agile Design
• Mock and Simulation
D o m a i n D e s i g n
• Functional & Non-functional
Requirements
• Summary of terms
• Use Case, Scenarios and
Acceptance Criteria
• Flow and Sequence Diagrams
18
Milano • 27 settembre 2019
Domain & API
Specif ica tio n La ng ua g es
Milano • 27 settembre 2019
Domain Modeling
Milano • 27 settembre 2019
20
Milano • 27 settembre 2019
UML Use Cases
Scena rio s a nd a ccepta nce criteria
*Fonte https://rubygarage.org/blog/clear-acceptance-criteria-and-why-its-important
21
Milano • 27 settembre 2019
UML Sequence Diagram
*Fonte https://medium.com/@jccguimaraes/designing-an-api-6609eb771b18
S e q u e n c e f l o w :
• Endpoints
• Resources Path & Parameters
• HTTP Verbs
• HTTP status codes
• Extra info: Headers
22
Milano • 27 settembre 2019
UML Flow
Diagram
23
Functional and non functional
requirements
Milano • 27 settembre 2019
Milano • 27 settembre 2019
API Design
Milano • 27 settembre 2019
25
«Outside-in» vs «Inside-out»
and
API First approach
Milano • 27 settembre 2019
26
Rest API Design Language
OpenAPI (a k a Swa g g er )
Milano • 27 settembre 2019
27
Milano • 27 settembre 2019
Rest API Definition
• Entities Schema
• Resources and paths
• HTTP Verbs and HTTP status codes
• Media Types
• Documentation (paths, entities, parameters,…)
• Examples
• … and
28
Milano • 27 settembre 2019
29
Milano • 27 settembre 2019
Rest API Definition
H T T P S T A T U S C O D E S
E R R O R S g e n e r a t e d b y
i n t e r m e d i a t e L a y e r s
• Reverse Proxies
• API Gateway
• EBS
• …
D E S I G N f o r p r o b l e m s
• RFC 7807 (JSON Problem)
• Google Errors, Facebook Errors,…
• Error code
• Human Error message
• Error description
• Internal reference ID & documetation
30
Milano • 27 settembre 2019
OpenAPI
API Definition
App UI Prototyping
Backend Mock
Automated Tests
API Documentation /w
Parameters, errors,
Examples
Server Side
Source Code Generation
Client Side
Source Code Generation
API First advantage
Milano • 27 settembre 2019
Conclusions
Milano • 27 settembre 2019
32
Importance of API Design
Un buo n desig n rende effi ci en t i
ed effi caci g li sv i l u ppat ori sia in f a se
di pro to tipa zio ne e integra zio ne
sia in f a se di p r o b lem so l v i n g e su pport o
Milano • 27 settembre 2019
33
Importance of API Design
C a mbia re le AP I una v o lta pubblica te
impa tta sul ciclo di vita delle API
Milano • 27 settembre 2019
34
Milano • 27 settembre 2019
API Architect
• Comprende i bisogni operativi degli sviluppatori
• Introduce, fa comprendere e utilizzare gli strumenti di specifica
• Assicura tecnicamente qualità, documentazione, esempi
• Garantisce uniformità e adesione agli standard
• Garantisce la sicurezza
• Monitoring ai fini delle performance e disponibilità delle API
35
Milano • 27 settembre 2019
• Comprende i bisogni degli utilizzatori in termini di funzionalità
• Assicura strumenti per garantire documentazione, facilità di utilizzo e integrazione
• Promuove l’adozione delle API nel sistema azienda
• Tiene sotto controllo e massimizza il ROI (Return of Investment)
• Monitoring e valuta KPI delle API
API Product Manager
Milano • 27 settembre 2019
Denis Signoretto
IT Architect & Senior Project Manager
@denissignoretto
Email: denis.signoretto@intesys.it
Grazie

Más contenido relacionado

Similar a API Design: il must-have per governare un’Architettura Headless

Musixmatch Cloud: Microsoft Azure Media Services and UGC Content
Musixmatch Cloud: Microsoft Azure Media Services and UGC ContentMusixmatch Cloud: Microsoft Azure Media Services and UGC Content
Musixmatch Cloud: Microsoft Azure Media Services and UGC ContentLoreto Parisi
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioNicolò Carandini
 
Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013Antonio Liccardi
 
antonello curti catania 23 giugno
antonello curti catania 23 giugnoantonello curti catania 23 giugno
antonello curti catania 23 giugnoChantal Ferrari
 
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Marco Parenzan
 
Convegno 16/11 | ROCCHI Daniele
Convegno 16/11 | ROCCHI DanieleConvegno 16/11 | ROCCHI Daniele
Convegno 16/11 | ROCCHI DanieleServizi a rete
 
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...Stefano Marchetti
 
Community Days 2015 Introduzione a Xamarin
Community Days 2015  Introduzione a XamarinCommunity Days 2015  Introduzione a Xamarin
Community Days 2015 Introduzione a XamarinDan Ardelean
 
Strumenti automatici nella valutazione dell'accessibilità dei siti web
Strumenti automatici nella valutazione dell'accessibilità dei siti webStrumenti automatici nella valutazione dell'accessibilità dei siti web
Strumenti automatici nella valutazione dell'accessibilità dei siti webAntonio Giovanni Schiavone
 
Enabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure PipelinesEnabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure PipelinesLuca Milan
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembreProfesia Srl, Lynx Group
 
Gori politecnica applicazioni bim per le infrastrutture 20211104_rev
Gori politecnica applicazioni bim per le infrastrutture 20211104_revGori politecnica applicazioni bim per le infrastrutture 20211104_rev
Gori politecnica applicazioni bim per le infrastrutture 20211104_revUNI - Ente Italiano di Normazione
 
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)DBAGroup2016
 
Presentazione Osservatorio Cloud ICT -Alessandro Piva
Presentazione Osservatorio Cloud ICT -Alessandro PivaPresentazione Osservatorio Cloud ICT -Alessandro Piva
Presentazione Osservatorio Cloud ICT -Alessandro PivaRedazione InnovaPuglia
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTMatteo Gentile
 
Smau milano 2010 stefano butti
Smau milano 2010 stefano buttiSmau milano 2010 stefano butti
Smau milano 2010 stefano buttiSMAU
 

Similar a API Design: il must-have per governare un’Architettura Headless (20)

Cmdays mxm ugc
Cmdays mxm ugcCmdays mxm ugc
Cmdays mxm ugc
 
Musixmatch Cloud: Microsoft Azure Media Services and UGC Content
Musixmatch Cloud: Microsoft Azure Media Services and UGC ContentMusixmatch Cloud: Microsoft Azure Media Services and UGC Content
Musixmatch Cloud: Microsoft Azure Media Services and UGC Content
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual Studio
 
Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013
 
antonello curti catania 23 giugno
antonello curti catania 23 giugnoantonello curti catania 23 giugno
antonello curti catania 23 giugno
 
Tesi8
Tesi8Tesi8
Tesi8
 
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
 
Convegno 16/11 | ROCCHI Daniele
Convegno 16/11 | ROCCHI DanieleConvegno 16/11 | ROCCHI Daniele
Convegno 16/11 | ROCCHI Daniele
 
Ibm bluemix r pozzi
Ibm bluemix r pozziIbm bluemix r pozzi
Ibm bluemix r pozzi
 
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...
io-Comune e gli strumenti per la comunicazione e la digitalizzazione - AgiD c...
 
Community Days 2015 Introduzione a Xamarin
Community Days 2015  Introduzione a XamarinCommunity Days 2015  Introduzione a Xamarin
Community Days 2015 Introduzione a Xamarin
 
Strumenti automatici nella valutazione dell'accessibilità dei siti web
Strumenti automatici nella valutazione dell'accessibilità dei siti webStrumenti automatici nella valutazione dell'accessibilità dei siti web
Strumenti automatici nella valutazione dell'accessibilità dei siti web
 
Enabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure PipelinesEnabling DevOps for Machine Learning with Azure Pipelines
Enabling DevOps for Machine Learning with Azure Pipelines
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
 
Gori politecnica applicazioni bim per le infrastrutture 20211104_rev
Gori politecnica applicazioni bim per le infrastrutture 20211104_revGori politecnica applicazioni bim per le infrastrutture 20211104_rev
Gori politecnica applicazioni bim per le infrastrutture 20211104_rev
 
Xamarin Robotics
Xamarin RoboticsXamarin Robotics
Xamarin Robotics
 
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)
BIMagination 2016: Intervento di Simone Di Biase (Project Manager DBAGroup)
 
Presentazione Osservatorio Cloud ICT -Alessandro Piva
Presentazione Osservatorio Cloud ICT -Alessandro PivaPresentazione Osservatorio Cloud ICT -Alessandro Piva
Presentazione Osservatorio Cloud ICT -Alessandro Piva
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICT
 
Smau milano 2010 stefano butti
Smau milano 2010 stefano buttiSmau milano 2010 stefano butti
Smau milano 2010 stefano butti
 

API Design: il must-have per governare un’Architettura Headless

  • 1. Milano • 27 settembre 2019 API Design I «must have» per governare un’Architettura Headless Denis Signoretto - IT Architect & Senior Project Manager
  • 2. 2 Milano • 27 settembre 2019
  • 3. 3 Milano • 27 settembre 2019
  • 4. Milano • 27 settembre 2019 A step back, first …
  • 5. 5 Milano • 27 settembre 2019 API vs Web Services N o silo es & Multiple Co nsumers
  • 6. 6 Milano • 27 settembre 2019 API API vs Web Services Reuse
  • 7. 7 Milano • 27 settembre 2019 API as a Product Life -Cycle
  • 8. Milano • 27 settembre 2019 API as a Product Milano • 27 settembre 2019
  • 9. Milano • 27 settembre 2019 SIDE A Who a re the API custo mers ?
  • 10. 10 Milano • 27 settembre 2019 Developers Wha t a re their needs ?
  • 11. 11 $> Accessible and discoverable API $> Documentation $> Standards $> Adoption of known best practices and conventions $> Sandbox $> Examples Milano • 27 settembre 2019
  • 12. 12 $> Accessible and discoverable API $> Documentation $> Standards $> Adoption of known best practices and conventions $> Sandbox $> Working Examples !!! Milano • 27 settembre 2019
  • 13. Milano • 27 settembre 2019 SIDE B Is there a n «API Pro duct M a na g er»?
  • 14. 14 Milano • 27 settembre 2019 API Design is an important pillar
  • 15. 15 Milano • 27 settembre 2019 How to put API Design into Practice ?!?
  • 16. 16 Milano • 27 settembre 2019 Case History Journey in do ma in M o deling & Rest API Desig n
  • 17. 17 Milano • 27 settembre 2019 API Design approach A P I D e s i n g • Consumer-Oriented Design - “Outside-in” approach - API First Design • Agile Design • Mock and Simulation D o m a i n D e s i g n • Functional & Non-functional Requirements • Summary of terms • Use Case, Scenarios and Acceptance Criteria • Flow and Sequence Diagrams
  • 18. 18 Milano • 27 settembre 2019 Domain & API Specif ica tio n La ng ua g es
  • 19. Milano • 27 settembre 2019 Domain Modeling Milano • 27 settembre 2019
  • 20. 20 Milano • 27 settembre 2019 UML Use Cases Scena rio s a nd a ccepta nce criteria *Fonte https://rubygarage.org/blog/clear-acceptance-criteria-and-why-its-important
  • 21. 21 Milano • 27 settembre 2019 UML Sequence Diagram *Fonte https://medium.com/@jccguimaraes/designing-an-api-6609eb771b18 S e q u e n c e f l o w : • Endpoints • Resources Path & Parameters • HTTP Verbs • HTTP status codes • Extra info: Headers
  • 22. 22 Milano • 27 settembre 2019 UML Flow Diagram
  • 23. 23 Functional and non functional requirements Milano • 27 settembre 2019
  • 24. Milano • 27 settembre 2019 API Design Milano • 27 settembre 2019
  • 25. 25 «Outside-in» vs «Inside-out» and API First approach Milano • 27 settembre 2019
  • 26. 26 Rest API Design Language OpenAPI (a k a Swa g g er ) Milano • 27 settembre 2019
  • 27. 27 Milano • 27 settembre 2019 Rest API Definition • Entities Schema • Resources and paths • HTTP Verbs and HTTP status codes • Media Types • Documentation (paths, entities, parameters,…) • Examples • … and
  • 28. 28 Milano • 27 settembre 2019
  • 29. 29 Milano • 27 settembre 2019 Rest API Definition H T T P S T A T U S C O D E S E R R O R S g e n e r a t e d b y i n t e r m e d i a t e L a y e r s • Reverse Proxies • API Gateway • EBS • … D E S I G N f o r p r o b l e m s • RFC 7807 (JSON Problem) • Google Errors, Facebook Errors,… • Error code • Human Error message • Error description • Internal reference ID & documetation
  • 30. 30 Milano • 27 settembre 2019 OpenAPI API Definition App UI Prototyping Backend Mock Automated Tests API Documentation /w Parameters, errors, Examples Server Side Source Code Generation Client Side Source Code Generation API First advantage
  • 31. Milano • 27 settembre 2019 Conclusions Milano • 27 settembre 2019
  • 32. 32 Importance of API Design Un buo n desig n rende effi ci en t i ed effi caci g li sv i l u ppat ori sia in f a se di pro to tipa zio ne e integra zio ne sia in f a se di p r o b lem so l v i n g e su pport o Milano • 27 settembre 2019
  • 33. 33 Importance of API Design C a mbia re le AP I una v o lta pubblica te impa tta sul ciclo di vita delle API Milano • 27 settembre 2019
  • 34. 34 Milano • 27 settembre 2019 API Architect • Comprende i bisogni operativi degli sviluppatori • Introduce, fa comprendere e utilizzare gli strumenti di specifica • Assicura tecnicamente qualità, documentazione, esempi • Garantisce uniformità e adesione agli standard • Garantisce la sicurezza • Monitoring ai fini delle performance e disponibilità delle API
  • 35. 35 Milano • 27 settembre 2019 • Comprende i bisogni degli utilizzatori in termini di funzionalità • Assicura strumenti per garantire documentazione, facilità di utilizzo e integrazione • Promuove l’adozione delle API nel sistema azienda • Tiene sotto controllo e massimizza il ROI (Return of Investment) • Monitoring e valuta KPI delle API API Product Manager
  • 36. Milano • 27 settembre 2019 Denis Signoretto IT Architect & Senior Project Manager @denissignoretto Email: denis.signoretto@intesys.it Grazie