SlideShare a Scribd company logo
1 of 20
Response Deserialisation
by Swagger with HAL
https://doc.co/u18YLp
Justin Yoo
• Development Consultant at Kloud Solutions
• Microsoft MVP
• http://aliencube.org
• http://devkimchi.com
• @justinchronicle
Disclaimer
• Contents in this slide:
• Are ONLY my personal opinion
• MAY be different from my company’s opinion
• Sample codes used in the demo:
• CAN be used or distributed under the MIT licence
• MAY contain defects
• MAY NOT be suitable for production use
Agenda
• HAL (Hypertext Application Language)
• HAL Demo
• Swagger
• Swagger Demo
• AutoRest
• AutoRest Demo
• Q&A
HAL
What is HAL?
• Hypertext Application Language
• Richardson Maturity Model
• Layer 3: Hypermedia Control
• Returning resource with
metadata
• Metadata contains information
what to do next
http://martinfowler.com/articles/richardsonMaturityModel.html
HAL Implementations
• IETF Draft
• https://tools.ietf.org/html/draft-kelly-json-hal
• List of public hypermedia APIs using HAL
• Amazon AppStream
• Oxford University
• HAL libraries
• Java, C#
• PHP, Python, Ruby
• JavaScript, Swift, Obj-C
• etc…
Sample Code
HAL Demo
https://github.com/JakeGinnivan/WebApi.Hal
https://www.nuget.org/packages/WebApi.Hal
Swagger
What is Swagger?
• http://swagger.io
• Standard interface to REST APIs
• Better discoverability
• for humans
• for machines
• Better understandability
• without reading source codes
• Client SDK generation
Swagger Implementations
• Java
• Springfox
• JavaScript
• Swagger Parser
• C#
• Swashbuckle
• AutoRest
• And more…
• http://swagger.io/open-source-integrations
Swagger Sample Screen
Swagger.json
Swagger Demo
https://github.com/domaindrivendev/Swashbuckle
https://www.nuget.org/packages/Swashbuckle
AutoRest
What is AutoRest?
• Backed by Microsoft
• Generating client libraries from JSON schema generated by Swagger
• Supporting client libraries
• C#
• Java
• JavaScript
• Ruby
AutoRest Demo
https://github.com/Azure/AutoRest
https://www.nuget.org/packages/AutoRest
https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime
Q & A
Thank You
https://github.com/devkimchi/HAL-Swagger-Sample
https://github.com/devkimchi/TypeScript-WebApi-Sample
http://wp.me/p4VdUn-mr

More Related Content

Viewers also liked

Thuoc Tiem Vao Khop
Thuoc Tiem Vao KhopThuoc Tiem Vao Khop
Thuoc Tiem Vao Khop
joellen305
 
Discussion week 7 c7 (powepoint)
Discussion week 7   c7 (powepoint)Discussion week 7   c7 (powepoint)
Discussion week 7 c7 (powepoint)
franzettamcneil
 
Viêm Khớp Nhiễm Trùng
Viêm Khớp Nhiễm TrùngViêm Khớp Nhiễm Trùng
Viêm Khớp Nhiễm Trùng
shala176
 

Viewers also liked (14)

How to be a SemVer Hero – an interactive lightning talk
How to be a SemVer Hero – an interactive lightning talkHow to be a SemVer Hero – an interactive lightning talk
How to be a SemVer Hero – an interactive lightning talk
 
Semantic Versioning Lightning Talk
Semantic Versioning Lightning TalkSemantic Versioning Lightning Talk
Semantic Versioning Lightning Talk
 
Iterative Development with Swagger on the JDK
Iterative Development with Swagger on the JDKIterative Development with Swagger on the JDK
Iterative Development with Swagger on the JDK
 
Composer The Right Way - 010PHP
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHP
 
Composer the right way
Composer the right wayComposer the right way
Composer the right way
 
Rd 01-14-2006
Rd 01-14-2006Rd 01-14-2006
Rd 01-14-2006
 
Thuoc Tiem Vao Khop
Thuoc Tiem Vao KhopThuoc Tiem Vao Khop
Thuoc Tiem Vao Khop
 
Carlieuklima - промышленный производитель систем отопления
Carlieuklima - промышленный производитель систем отопленияCarlieuklima - промышленный производитель систем отопления
Carlieuklima - промышленный производитель систем отопления
 
Rd 21-03-2006
Rd 21-03-2006Rd 21-03-2006
Rd 21-03-2006
 
Cik izmaksā preču krājumu vadība
Cik izmaksā preču krājumu vadībaCik izmaksā preču krājumu vadība
Cik izmaksā preču krājumu vadība
 
Discussion week 7 c7 (powepoint)
Discussion week 7   c7 (powepoint)Discussion week 7   c7 (powepoint)
Discussion week 7 c7 (powepoint)
 
ใบงานสำรวจตนเอง M6
ใบงานสำรวจตนเอง M6 ใบงานสำรวจตนเอง M6
ใบงานสำรวจตนเอง M6
 
Etsy Dallas 2014 Bash Kit
Etsy Dallas 2014 Bash KitEtsy Dallas 2014 Bash Kit
Etsy Dallas 2014 Bash Kit
 
Viêm Khớp Nhiễm Trùng
Viêm Khớp Nhiễm TrùngViêm Khớp Nhiễm Trùng
Viêm Khớp Nhiễm Trùng
 

Similar to EMOCON 2015 - HAL with Swagger

Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?
Akana
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
daveayan
 

Similar to EMOCON 2015 - HAL with Swagger (20)

360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
Software Engineering - Trends & Industry Practices
Software Engineering - Trends & Industry PracticesSoftware Engineering - Trends & Industry Practices
Software Engineering - Trends & Industry Practices
 
Get Started with Driverless AI Recipes - Hands-on Training
Get Started with Driverless AI Recipes - Hands-on TrainingGet Started with Driverless AI Recipes - Hands-on Training
Get Started with Driverless AI Recipes - Hands-on Training
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
Gradle Again
Gradle AgainGradle Again
Gradle Again
 
Pure APIs: Development workflows for successful API integrations
Pure APIs: Development workflows for successful API integrationsPure APIs: Development workflows for successful API integrations
Pure APIs: Development workflows for successful API integrations
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
Apache deep learning 202 Washington DC - DWS 2019
Apache deep learning 202   Washington DC - DWS 2019Apache deep learning 202   Washington DC - DWS 2019
Apache deep learning 202 Washington DC - DWS 2019
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
Top 7 mistakes
Top 7 mistakesTop 7 mistakes
Top 7 mistakes
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
2019-04-17 Bio-IT World G Suite-Jira Cloud Sample Tracking
2019-04-17 Bio-IT World G Suite-Jira Cloud Sample Tracking2019-04-17 Bio-IT World G Suite-Jira Cloud Sample Tracking
2019-04-17 Bio-IT World G Suite-Jira Cloud Sample Tracking
 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
 
ShiftGearsWithInformationSecurity.pdf
ShiftGearsWithInformationSecurity.pdfShiftGearsWithInformationSecurity.pdf
ShiftGearsWithInformationSecurity.pdf
 
Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Tool up your lamp stack
Tool up your lamp stackTool up your lamp stack
Tool up your lamp stack
 

More from 이상한모임

EMOCON 2015 - 카피캣으로 시작하는 오픈소스
EMOCON 2015 - 카피캣으로 시작하는 오픈소스EMOCON 2015 - 카피캣으로 시작하는 오픈소스
EMOCON 2015 - 카피캣으로 시작하는 오픈소스
이상한모임
 

More from 이상한모임 (12)

Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)
 
Hack Reactor & Code states - 김인기님(@ingikim)
Hack Reactor & Code states - 김인기님(@ingikim)Hack Reactor & Code states - 김인기님(@ingikim)
Hack Reactor & Code states - 김인기님(@ingikim)
 
Designer, Collaboration and Community - 김지홍님(@jihere1001)
Designer, Collaboration and Community - 김지홍님(@jihere1001)Designer, Collaboration and Community - 김지홍님(@jihere1001)
Designer, Collaboration and Community - 김지홍님(@jihere1001)
 
Emocon 2015 - 웹 앱 개발자가 모르는 임베디드세상(오토모티브 월드)
Emocon 2015 - 웹 앱 개발자가 모르는 임베디드세상(오토모티브 월드)Emocon 2015 - 웹 앱 개발자가 모르는 임베디드세상(오토모티브 월드)
Emocon 2015 - 웹 앱 개발자가 모르는 임베디드세상(오토모티브 월드)
 
EMOCON 2015 - Sketch3로 기획서 관리하기
EMOCON 2015 - Sketch3로 기획서 관리하기EMOCON 2015 - Sketch3로 기획서 관리하기
EMOCON 2015 - Sketch3로 기획서 관리하기
 
EMOCON 2015 - 개발자로 성공적으로 실패하기
EMOCON 2015 - 개발자로 성공적으로 실패하기EMOCON 2015 - 개발자로 성공적으로 실패하기
EMOCON 2015 - 개발자로 성공적으로 실패하기
 
EMOCON 2015 - Jspm & systemjs
EMOCON 2015 - Jspm & systemjsEMOCON 2015 - Jspm & systemjs
EMOCON 2015 - Jspm & systemjs
 
EMOCON 2015 - 카피캣으로 시작하는 오픈소스
EMOCON 2015 - 카피캣으로 시작하는 오픈소스EMOCON 2015 - 카피캣으로 시작하는 오픈소스
EMOCON 2015 - 카피캣으로 시작하는 오픈소스
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
 
EMOCON 2015 - 디자인이 뭐예요?
EMOCON 2015 - 디자인이 뭐예요?EMOCON 2015 - 디자인이 뭐예요?
EMOCON 2015 - 디자인이 뭐예요?
 
전자책 담당자 생존기 ● 이상한모임
전자책 담당자 생존기 ● 이상한모임전자책 담당자 생존기 ● 이상한모임
전자책 담당자 생존기 ● 이상한모임
 
전자책 실무자가 바라본 전자책과 그 트렌드 ● 이상한모임
전자책 실무자가 바라본 전자책과 그 트렌드 ● 이상한모임전자책 실무자가 바라본 전자책과 그 트렌드 ● 이상한모임
전자책 실무자가 바라본 전자책과 그 트렌드 ● 이상한모임
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

EMOCON 2015 - HAL with Swagger