making your api behave like a big boy
TRANSCRIPT
API Management
Making your API behave
like a big boy
Andrew Siemer | Clear Measure
@asiemer
Clear Measure Workshops
Day long, Clear Measure led, fingers on keyboards, learn by doing
CQRS, DDD, Event Sourcing, Distributed Systems, Micro Services
meetup.com/clear-measure-workshop
Andrew Siemerhttp://about.me/andrewsiemer
ASP InsiderMS v-TSP (Azure)
Azure Advisor ProgramFather of 6. Jack of all trades, master of some.
• Stories from the programming trenches
• How to grow your programming career
• http://www.developerspringboard.com
• @devspringboard
More details here!
• Andrew Siemer on LosTechies
• “making your api behave like the big boys”
• http://goo.gl/DTQIGu
Topics to cover
• Downside of directly exposing your API
• Introducing Proxy’s & Gateways
• Features you need to know about
• Available tools
• Azure API Management
Downside of direct access
• Flexibility in deployment story
• Versioning is harder, and in code
• Security, Authentication, Authorization in code
• Cohesive API forces single solution (mega code base)• Not micro-service friendly
• Basically, you need it? You write it!
Proxy’s and Gateways
• Proxy• Thin pass through
• Expects something on the other end to respond
• Gateway• Thick pass through
• Exposes mega feature list
Features available in managed API
• Acceleration
• Routing
• URL Rewriting
• Versioning
• Cohesion
• Rate Limiting & Throttling
• Security
• Server Affinity
• Monitoring
• A/B Testing
• Blue/Green Deployments
Tools – Proxy’s – Which one?
• Pick by features
• All are mature and well supported
• Nginx is clear popularity winner
Living in a Microsoft world?
• Application Request Routing (ARR)
• Snaps in to IIS
• Familiar UI• UI!!! Not command line!
• Configuration documents• XML
Demo API – MS CalcAPI
• Great Azure Friday videos on API Management• http://channel9.msdn.com/Shows/Azure-Friday/
• Using Postman or similar you can tinker• http://calcapi.cloudapp.net/calcapi.json
• http://calcapi.cloudapp.net/api/add?a=2&b=3
• http://calcapi.cloudapp.net/api/sub?a=2&b=1
Now subscribe to the Product
• Users have to subscribe to products, to get access to API’s• Administrators are auto subscribed