Download - EMOCON 2015 - HAL with Swagger
![Page 1: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/1.jpg)
Response Deserialisationby Swagger with HAL
https://doc.co/u18YLp
![Page 2: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/2.jpg)
Justin Yoo• Development Consultant at Kloud Solutions• Microsoft MVP• http://aliencube.org• http://devkimchi.com• @justinchronicle
![Page 3: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/3.jpg)
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
![Page 4: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/4.jpg)
Agenda• HAL (Hypertext Application Language)• HAL Demo• Swagger• Swagger Demo• AutoRest• AutoRest Demo• Q&A
![Page 5: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/5.jpg)
HAL
![Page 6: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/6.jpg)
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
![Page 7: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/7.jpg)
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…
![Page 8: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/8.jpg)
Sample Code
![Page 9: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/9.jpg)
HAL Demohttps://github.com/JakeGinnivan/WebApi.Halhttps://www.nuget.org/packages/WebApi.Hal
![Page 10: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/10.jpg)
Swagger
![Page 11: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/11.jpg)
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
![Page 12: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/12.jpg)
Swagger Implementations• Java• Springfox
• JavaScript• Swagger Parser
• C#• Swashbuckle• AutoRest
• And more…• http://swagger.io/open-source-integrations
![Page 13: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/13.jpg)
Swagger Sample Screen
![Page 14: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/14.jpg)
Swagger.json
![Page 15: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/15.jpg)
Swagger Demohttps://github.com/domaindrivendev/Swashbucklehttps://www.nuget.org/packages/Swashbuckle
![Page 16: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/16.jpg)
AutoRest
![Page 17: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/17.jpg)
What is AutoRest?• Backed by Microsoft• Generating client libraries from JSON schema generated by Swagger• Supporting client libraries• C#• Java• JavaScript• Ruby
![Page 18: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/18.jpg)
AutoRest Demohttps://github.com/Azure/AutoResthttps://www.nuget.org/packages/AutoResthttps://www.nuget.org/packages/Microsoft.Rest.ClientRuntime
![Page 19: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/19.jpg)
Q & A
![Page 20: EMOCON 2015 - HAL with Swagger](https://reader034.vdocument.in/reader034/viewer/2022042706/58797c9f1a28ab6c358b4ac1/html5/thumbnails/20.jpg)
Thank Youhttps://github.com/devkimchi/HAL-Swagger-Samplehttps://github.com/devkimchi/TypeScript-WebApi-Samplehttp://wp.me/p4VdUn-mr