The Power of a Great API Damian Brady

Slides:



Advertisements
Similar presentations
Andrew Hennessy Automating Server Application migrations to the Cloud – Goodbye Server INF21 3.
Advertisements

Kevin Francis Developing on Windows Devices ARC33 2.
Chris Hewitt Adding magic to your business with Perceptual Intelligence ARC323 B.
Matt McSpirit Software-defined Networking in Windows Server 2016 INF32 4.
Jeff Alexander & Andrew McMurray Runtime Provisioning in Windows 10 WIN327.
Michael Niehaus Using the Windows Store for Business: New Capabilities for Managing Apps in the Enterprise WIN335.
Jessica Payne Microsoft Global Incident Response and Recovery
Dr Greg Low Working with SQL Server Spatial Data DAT33 3.
Mike James Building a cross-platform pedometer app with Xamarin & Azure MOB334.
Nick Application Development for the Universal Windows Platform MOB225.
Alec Tucker An Introduction to Cross Platform Native App Development using Xamarin to Develop, Test and Monitor MOB227.
Orin Thomas 30 Bad Habits of Server Administrators INF32 3.
Fai Lai Global IoT Tech Specialist, C+E Specialist Sales Seamless communication between devices and Azure IoT Hub via Azure IoT Protocol Gateway MOB31.
Orin EDP, EFS, BitLocker, RMS, DAC, and IPsec: Protect your files at rest and in transit. WIN341 A.
Building a Microservices solution using Docker,
Ryan Newington From Fortran to FIM: Dragging your identity management system out of the dark ages WIN332 B.
Kevin Francis Big Building Blocks – a tour of Dynamics ARC323 A.
Marc Soester Project Visualization, Resource Management and Collaboration using Office 365 Project Online PRD32 6.
James Bannan The Cloud That Chuck Norris Built: Resilient Architecture in Azure ARC44 3.
A deep dive into Azure AD B2C
3 Ways to Integrate Business Systems to Partners
Azure ARM Templates CLD321 Aaron Saikovski
Serverless in Office 365 Build services with Azure Functions
Making of the Ignite Bot
What's New in System Center Configuration Manager, Current Branch and Intune INF324a Steven Hosking.
30 Tips and Tricks for Managing and Running Ubuntu/Bash/Windows Subsystem for Linux WIN321B Orin Thomas.
Introduction to ASP.NET Core
The Zen of Package Management
Conversation As a Platform - Part 1
Accelerate Windows 10 deployments through telemetry driven insights using Upgrade Analytics WIN321a Zach Dvorak.
Now, let’s implement/trial Windows Defender Advanced Threat Protection
Building Business Application with Office 365 and Other Line Business Systems
Techniques and Practices for Testing Angular
Microsoft Ignite /19/2018 2:35 AM
Need for Speed: Why Applications With No Database and No Services are Fast ARC334 Nick Randolph – Built to Roam.
Building a Continuous Delivery Pipeline for ASP.NET Core Apps
Jenkins and Azure OPEN322 Michael Friedrich.
Darren Neimke and Jonathan Ruckert
Deploy Windows 10 Mobile for the mobile workforce
Ewan MacKellar & Mario Tevanian
Build vNext in VSO and TFS 2015
What’s new in Visual Studio in 2015?
Microsoft Edge for Developers
Microsoft Ignite /19/ :53 AM Applying DevOps principals in applications integrated with Office 365 Evergreen Ben Parker ARC231B © 2015 Microsoft.
Microsoft CSS ADPerf Core Team and Justin Turner
Rob Farley, LobsterPot Solutions
Hosted Web Apps with Windows App Studio
Microsoft Ignite /28/2018 8:58 AM
Application Insights:
Modern cloud PaaS for mobile apps, web sites, API's and business logic apps
Bare Metal Development for the Universal Windows Platform
SharePoint Guy, Protiviti
Microsoft Ignite /2/2019 1:15 AM Power Up Your Cross Platform Mobile Code with Platform Specific Features using Xamarin Alec Tucker MOB331 © 2015.
TechEd /11/ :54 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
API DOCUMENTATION Swetha Mohandas Microsoft Connect 2016
Microsoft Connect /17/2019 9:55 PM
The OpenRasta framework for building RESTful applications
What is Visual Studio Code?
Deep Dive into Azure API Apps and Logic Apps
Jonathan Ruckert & Darren Neimke
UI test automation of MVC apps with Microsoft Edge WebDriver
4/29/2019 9:20 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Chris Henley & Ben DiQual
Empower your users with Azure Active Directory Premium
WCF and .NET Framework Microservices in Containers
5/30/2019 1:59 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Securing ASP.NET in an Azure Environment
Erik Porter Program Manager ASP.NET Microsoft Corporation
Presentation transcript:

The Power of a Great API Damian Brady Microsoft Ignite 2015 2/19/2019 8:28 AM The Power of a Great API The case for writing API-first applications Damian Brady ARC341B © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Why is an API a good thing? Implementation Demo Microsoft Ignite 2015 2/19/2019 8:28 AM Why is an API a good thing? Implementation Demo © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

I need one button to disable all the machines in an environment ❄️

Solution One “Sorry, you’re going to have to do it 200 times” Microsoft Ignite 2015 2/19/2019 8:28 AM Solution One “Sorry, you’re going to have to do it 200 times” © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Solution Two “Sure! We’ll add that!” Microsoft Ignite 2015 2/19/2019 8:28 AM Solution Two “Sure! We’ll add that!” © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Solution Three “Here’s a script”

API Microsoft Ignite 2015 2/19/2019 8:28 AM © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

UNTAPPD

API != Public API

Implementation

UI Business Data Exceptions Microsoft Ignite 2015 2/19/2019 8:28 AM © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

API First Focus on your function Make your UI use your API UI API Business Data

API Second? Expose your Business layer Refactor or add a layer UI Expose your Business layer Refactor or add a layer Make your UI use your API API Data Business

Exposing your API There are plenty of options… but HTTP is easy Self-hosted endpoints – OWIN, Nancy, ASP.NET 5 PM> Install-Package Microsoft.Owin.SelfHost PM> Install-Package Nancy.Owin

Types of Web APIs HTTP/RPC REST HATEOAS Remote Procedure Call Method calls over HTTP Request-response REST REpresentational State Transfer Resource-based URIs HTTP Verbs Stateless HATEOAS Hypermedia As The Engine Of Application State REST + links Self-describing 

HTTP/RPC https://api.flickr.com/services/rest/?method=flickr.photos.search&text=ignite&api_key=xxx

REST https://api.spotify.com/v1/artists/1QxaPWG1POM8Ul6WwsHq4y

HATEOAS https://api.github.com /emojis

Be pragmatic

What to include? CRUD for Resources + Sensible functions Be pragmatic POST, GET, PUT, DELETE /api/customers/1 /api/customers/1/addresses /api/customers/1?includeDetail=true /api/customers/1?detailLevel=2 Be pragmatic Use separate classes

Other options OData? GraphQL? /api/Customers(1)/Orders?$filter='Total gt 10000'&$take=5&$orderby=Total,Date desc GraphQL?

Other things that might hurt Long-running Tasks Security Versioning Caching Content negotiation

Architecture The Principle of Least Surprise The Pit of Success Be conservative in what you send, liberal in what you accept

Architecture Consistent URIs /api/customers/1 /api/order/1 /api/customers?top=5 /api/orders/top?count=5

Architecture Consistent objects /api/customers/1 /api/customers

Let’s make one

Why is an API a good thing? Implementation Demo Microsoft Ignite 2015 2/19/2019 8:28 AM Why is an API a good thing? Implementation Demo © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Thankyou Damian Brady Octopus Deploy @damovisa | @octopusdeploy

Complete your session evaluation on My Ignite for your chance to win one of many daily prizes.

Continue your Ignite learning path Microsoft Ignite 2015 2/19/2019 8:28 AM Continue your Ignite learning path Visit Microsoft Virtual Academy for free online training visit https://www.microsoftvirtualacademy.com Visit Channel 9 to access a wide range of Microsoft training and event recordings https://channel9.msdn.com/ Head to the TechNet Eval Centre to download trials of the latest Microsoft products http://Microsoft.com/en-us/evalcenter/ © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.