OutSystems - How to Design a Good OutSystems API - NextStep 2012

1,369 views
1,120 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,369
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OutSystems - How to Design a Good OutSystems API - NextStep 2012

  1. 1. www.outsystems.com Page 1 © 2012 OutSystems – all rights reserved How to Design a Good API? 2012-05-11
  2. 2. 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
  3. 3. www.outsystems.com Page 3 © 2012 OutSystems – all rights reserved Logging Versioning Scalablility Security Naming Error Handling User Stories Granularity What to consider?
  4. 4. 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
  5. 5. www.outsystems.com Page 5 © 2012 OutSystems – all rights reserved GetOrderDetail() GetEmployeeName() CalculateTotalAmount() 3 x GetOrderLine() Granularity
  6. 6. www.outsystems.com Page 6 © 2012 OutSystems – all rights reserved Error Handling
  7. 7. 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!
  8. 8. 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!
  9. 9. www.outsystems.com Page 9 © 2012 OutSystems – all rights reserved API is a Product!
  10. 10. www.outsystems.com Page 10 © 2012 OutSystems – all rights reserved Scenarios
  11. 11. www.outsystems.com Page 11 © 2012 OutSystems – all rights reserved Master data Most companies want to centralize their master data. Error handling Naming Composite Applications Directory Performance Management - Nouns and Verbs Versioning- TrueChange™ -Throw Exception Security- Read-only Entities CoreBusiness Components Employees
  12. 12. 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 agileplatform™ Flight Services FlightsAirports 3rd Parties
  13. 13. 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 UILayer HomeBankCRM 1 Documentation- OutDoc BusinessLayer Account Services Accounts Customers Customer Services 2
  14. 14. 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 agileplatform™ Claim Services WebPortal - HTTPS + S.Token Granularity Error Handling - Use reUse - Return error Logging- Application Log Small Partners
  15. 15. 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
  16. 16. Steve Jobs
  17. 17. www.outsystems.com Page 17 © 2012 OutSystems – all rights reserved
  18. 18. www.outsystems.com Page 18 © 2012 OutSystems – all rights reserved andre.vieira@outsystems.com nuno.baptista@outsystems.com

×