outsystems - how to design a good outsystems api - nextstep 2012
DESCRIPTION
A well-written API can be a great asset to the organization that wrote it and to all that use it. This session will present simple examples to highlight the the top rules for writing good and bad APIs using the Agile Platform.TRANSCRIPT
www.outsystems.com
Page 1 © 2012 OutSystems – all rights reserved
How to Design a Good API? 2012-05-11
www.outsystems.com
Page 2 © 2012 OutSystems – all rights reserved
What is a Good API?
Easy to learn and memorize
Leads to readable code
Hard to misuse
Stable
Complete
www.outsystems.com
Page 3 © 2012 OutSystems – all rights reserved
Logging
Versioning
Scalablility
Security
Naming
Error Handling
User Stories
Granularity
What to consider?
www.outsystems.com
Page 4 © 2012 OutSystems – all rights reserved
• Who will use the API?
• How will they use it?
• Where will they use it?
• Put yourself in the developer’s shoes!
User Stories
Naming & Type
• Meaningful & Readable
• Consistent
• Strongly typed
www.outsystems.com
Page 5 © 2012 OutSystems – all rights reserved
GetOrderDetail()
GetEmployeeName()
CalculateTotalAmount()
3 x GetOrderLine()
Granularity
www.outsystems.com
Page 7 © 2012 OutSystems – all rights reserved
• Go public means you have to version
• No usage = deprecate old version
• It’s costly so avoid it!
Logging
Versioning
• Measure Usage
• Performance Monitoring
• Troubleshoot
• Service Center helps you out!
www.outsystems.com
Page 8 © 2012 OutSystems – all rights reserved
• Control access to API for internal
• HTTPS/SSL for Public APIs
• Token-based Authentication
Scalability
Security
• Use Partial Response
– Pagination
– Filtering
• agileplatform™ already scales!
www.outsystems.com
Page 11 © 2012 OutSystems – all rights reserved
Master data
Most companies want to centralize their master data.
Error handling
Naming
Co
mp
osite
Ap
plic
atio
ns
Directory Performance
Management
- Nouns and Verbs
Versioning - TrueChange™
-Throw Exception
Security - Read-only Entities
Co
re B
usin
ess
Co
mp
on
en
ts
Employees
www.outsystems.com
Page 12 © 2012 OutSystems – all rights reserved
Information Provider
Airport management company provides real time flights’ information to their clients
Logging
Versioning
Scalablility
Security
Documentation
- Custom Audit
- New WebService
- Partial Response
- Lifetime Token
- API Document
ag
ilepla
tform
™
Flight
Services
Flights Airports
3rd Parties
www.outsystems.com
Page 13 © 2012 OutSystems – all rights reserved
3-Tier Layer
Bank company wants a CRM application with a SOA approach. Security is critical.
User Stories
Security
Scalablility
- Int. Auth, Int. Net.
- Cache
- Resource based UI Layer
HomeBank CRM 1
Documentation - OutDoc
Busin
ess L
ayer
Account
Services
Accounts Customers
Customer
Services
2
www.outsystems.com
Page 14 © 2012 OutSystems – all rights reserved
Extranet
Insurance company wants to scale out claim management through partners.
Security
Large
Partners
Claim Management
ag
ilepla
tform
™
Claim
Services
WebPortal
- HTTPS + S.Token
Granularity
Error Handling
- Use reUse
- Return error
Logging - Application Log
Small
Partners
www.outsystems.com
Page 15 © 2012 OutSystems – all rights reserved
What is a Good API?
Easy to learn and memorize
Leads to readable code
Hard to misuse
Stable
Complete
www.outsystems.com
Page 18 © 2012 OutSystems – all rights reserved