This document discusses response deserialization using Swagger with HAL (Hypertext Application Language). It provides an overview of HAL, demonstrates HAL implementation with sample code, discusses Swagger for documenting REST APIs, demonstrates Swagger implementation with sample code, discusses AutoRest for generating client libraries from Swagger documentation, and demonstrates AutoRest implementation. The presentation includes an agenda, descriptions of HAL, Swagger and AutoRest, lists of related implementations and libraries, screenshots, and links to sample code and additional resources. It concludes with a Q&A section.
2. Justin Yoo
• Development Consultant at Kloud Solutions
• Microsoft MVP
• http://aliencube.org
• http://devkimchi.com
• @justinchronicle
3. 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
6. 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
7. 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…
11. 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
17. What is AutoRest?
• Backed by Microsoft
• Generating client libraries from JSON schema generated by Swagger
• Supporting client libraries
• C#
• Java
• JavaScript
• Ruby