code camp auckland 2015 - dev1 microsoft api approaches 101
TRANSCRIPT
![Page 1: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/1.jpg)
DEV1 – How to Design, Build, Deploy and Manage API’s in Microsoft AzurePresented by Nikolai BlackieAdaptiv Integration3rd of October 2015
![Page 2: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/2.jpg)
Code Camp Auckland 2015 Demo Scenario
• Adding an API• Leveraging Swagger• Continuous Integration• Composition via Logic Apps• Expose via API Management
Why API’s? What Microsoft AzureAPI tools & components
you can use?
![Page 3: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/3.jpg)
APIs are the engines of growthMonetize data or services
Open new
channels
Innovate faster
Make product into a
platform
![Page 4: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/4.jpg)
Common scenarios
Modernize legacy backendsPackage APIs into tiersEnforce usage limitsProvide support and receive feedback
Mobile enablement
Partner ecosystem
Optimize and secure backendAuthorize and throttle requestsGet visibility into usage and healthDrive developer adoption
Business agility
Normalize legacy backendsBuild the catalog of APIsAccept organizational IDRespect org structure
![Page 5: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/5.jpg)
Software-defined Architecture for Applications
![Page 6: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/6.jpg)
Software-defined Architecture for Applications – Microsoft Technologies
API ManagementApp Services
API AppsLogic Apps
Azure Service BusWebAPI & WCF
![Page 7: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/7.jpg)
API APPSEasily build and
consume APIs in the cloud
WEB APPSWeb apps that scale with
your business
LOGIC APPSAutomate business
process across SaaS and on-premises
MOBILE APPSBuild Mobile apps for
any device
Integration Platform as a ServiceAzure App Services
![Page 8: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/8.jpg)
Resource Group – App Service
API App Gateway
other Azure services…
Clients• Web • Mobile (iOS)• Flow 3rd party
SaaS
API Apps from Gallery
Salesforce Connector
Office 365 Connector
Custom Code
Mobile App (Data
Access)
Direct deployed
Logic Apps
On-premise
s
Logic App (also from gallery)
Logic App Definitions
Token Store
Azure AD
Twilio Connector
Consent Server
Facilitates SaaS login and token refresh
Azur
e AD
API Apps Architecture Scenario
![Page 9: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/9.jpg)
Resource Group – App Service
API App Gateway
Clients• Web • Mobile (iOS)• Flow
API Apps from Gallery
HTTP Connector
Custom Code
Product API
Order API
Logic Apps
Logic App (also from gallery)
Logic App Definitions
API Apps Code Camp Demo Scenario
Logistics API
Build & Deploy
Source Control
App Insights
![Page 10: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/10.jpg)
Azure API Apps provide a rich platform and ecosystem for building, consuming, and distributing APIs in the cloud and on-premises.
![Page 11: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/11.jpg)
• Box• Chatter• Delay• Dropbox• Azure HD Insight• Marketo• Azure Media Services• OneDrive• SharePoint • SQL Server• Office 365• Oracle
• QuickBooks• SalesForce• Sugar CRM • SAP• Azure Service Bus• Azure Storage• Timer / Recurrence• Twilio• Twitter• IBM DB2 • Informix• Websphere MQ
• Azure Web Jobs• Yammer• Dynamics CRM• Dynamics AX• Hybrid Connectivity
• HTTP, HTTPS • File• Flat File• FTP, SFTP• POP3/IMAP• SMTP• SOAP + WCF
• Batching / Debatching
• Validate• Extract (XPath)• Transform
(+Mapper)• Convert (XML-JSON)• Convert (XML-FF)
• X12• EDIFACT• AS2• TPMOM• Rules Engine
Connectors
Protocols BizTalk Services
Built-in API Connectors
![Page 12: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/12.jpg)
API App Settings for Custom Applications
1) URL for external access2) Host that contains API settings3) Shared Resource Group Gateway
![Page 13: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/13.jpg)
Demo: API AppsHow to make your own
![Page 14: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/14.jpg)
SwaggerDocument Generate
![Page 15: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/15.jpg)
Swagger Configuration
1) Set XML documentation file ‘bin\XmlComments.xml’
Note All Configurations2) Update SwaggerConfig
IncludeXmlComments to string.Format(@"{0}\bin\XmlComments.xml",
System.AppDomain.CurrentDomain.BaseDirectory)
![Page 16: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/16.jpg)
Swagger Document Access
1) WebAPI via web app URL /swagger/ui/index – UI documentation /swagger/docs/v1 – Swagger DOC
2) API App Download swagger API Host URL + /swagger/docs/v1 – Swagger DOC
![Page 17: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/17.jpg)
Demo: SwaggerSpend more time coding, less time documenting
![Page 18: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/18.jpg)
PRODUCT BACKLOG
RELEASE PIPELINE
Sprint Monitor
Define
Deliver
Operate
Sprint
Define
DeliverCUSTOMERS
Automate!ReleaseManagement
![Page 19: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/19.jpg)
Visual Studio API Build Solution Configuration
MSBuild Arguments to support web deployment/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
![Page 20: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/20.jpg)
Visual Studio API Deploy Solution Configuration
• Deploy automatically to slots or live• Web Deploy Package (based on MSBuild Arguments)
$(build.stagingDirectory)\**\AdtvDemo.WUS.WebAPI.Logistics.zip$(build.stagingDirectory)\**\AdtvDemo.WUS.API.Products.zip
![Page 21: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/21.jpg)
Demo: API CI/CDHow to automate via TFS 2015 Online
![Page 22: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/22.jpg)
Logic Apps for easy automation• No code designer for rapid creation
• Dozens of pre-built templates to get started
• Out of box support for popular SaaS and on-premises apps
• Use with custom API apps of your own
• Biztalk APIs for expert integration scenarios
Automate SaaS andon-premises systems
LOGIC APPS
![Page 23: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/23.jpg)
App Logic Design Surface
![Page 24: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/24.jpg)
App Logic Operational Insight
![Page 25: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/25.jpg)
Demo: Logic AppsHow to make your own
![Page 26: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/26.jpg)
WEB USERS
WEB SITE
YOUR ORGANIZATION
APP DEVELOPERS
USERS
MOBILE APPS
SOCIAL APPS
PARTNERS ANDAFFILIATES
API
AZURE API MANAGEMENT
DEVELOPER PORTALREGISTRATIONDOCUMENTATIONINTERACTIVE API CONSOLEDEVELOPER ANALYTICSAPP GALLERYFORUMSNEWSISSUESWIKI
API PROXYSCALINGCACHINGMONITORINGTRAFFIC MANAGEMENT
ADMIN PORTALAPI PUBLISHINGSUBSCRIPTION MANAGEMENTSECURITYMEDIATIONCONTENT PUBLISHINGSITE CUSTOMIZATIONISSUE MANAGEMENTANALYTICSREPORTS
Azure API Management
![Page 27: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/27.jpg)
Azure API Management – Import Swagger
• Import API /WebAPI App via Swagger• /swagger/docs/v1 – Swagger DOC• Or download Swagger definition
• Add API to one or more API products
![Page 28: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/28.jpg)
Azure API Management - Policies
• Utilise Policies to enforce security or modify API• Authentication• Format Conversion• Cache etc
![Page 29: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/29.jpg)
Demo: Expose APIsHow to make your own
![Page 31: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/31.jpg)
ResourcesFind out more
![Page 32: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/32.jpg)
Swagger
Swashbuckle ASP NET WebAPI
documentation using Swagger Swashbuckle Customization Swagger & ASP NET WebAPI
![Page 33: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/33.jpg)
TFS 2015 Builds
https://msdn.microsoft.com/Library/vs/alm/Build/overview
https://github.com/Microsoft/vso-agent-tasks/blob/master/README.md
![Page 34: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/34.jpg)
Logic Apps
• Logic App EAI Tutorial• Author Logic App definitions• Logic App Workflow Definition Language
• Logic App Workflow Actions and Triggers
• Logic App Management API• Logic Apps Documentation
![Page 35: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/35.jpg)
Azure Powershell
https://github.com/Azure/azure-powershell/releases
API Apps DocumentationAPI Apps
![Page 36: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101](https://reader035.vdocument.in/reader035/viewer/2022062412/5883c02a1a28ab5c378b6831/html5/thumbnails/36.jpg)
https://github.com/nikolaiblackie/AKL2015CodeCampAppServices/blob/master/README.md
Sample Code