Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hypermedia Affordance

Hypermedia Affordance

Hypermedia Affordance with BEAR.Sunday

Akihito Koriyama

July 30, 2017
Tweet

More Decks by Akihito Koriyama

Other Decks in Technology

Transcript

  1. Hypermedia affordance
    with BEAR.Sunday
    @koriym 2017

    View Slide

  2. View Slide

  3. IUUQTFOXJLJQFEJBPSHXJLJ"⒎PSEBODF

    View Slide

  4. IUUQFLSJUTKQXQDPOUFOUVQMPBETDPNJDB⒎PSEBODFQEG

    View Slide

  5. View Slide

  6. GET /menu

    View Slide

  7. View Slide

  8. View Slide

  9. no affordance

    View Slide

  10. View Slide

  11. View Slide

  12. rel=“order” !

    View Slide

  13. /order


    but how ?

    View Slide

  14. OPTIONS /order

    View Slide

  15. View Slide

  16. View Slide

  17. POST /order/?name=latte

    View Slide

  18. View Slide

  19. PUT /order?id=123&extra=shot

    View Slide

  20. View Slide

  21. GET /order?id=123

    View Slide

  22. View Slide

  23. OPTIONS /payment

    View Slide

  24. PUT: the payment should be idempotent

    View Slide

  25. IUUQTXXXJOGPRDPNKQBSUJDMFTXFCCFSSFTUXPSLqPX
    Resource interface for state machine
    URI as state " " "

    View Slide

  26. 200 GET /menu

    201 POST /order/?name=latte

    100 PUT /order/?order_id=1234&extra=shot

    200 PUT /payment?order_id&card_num=123&expire=101018

    URIs as event source

    View Slide

  27. * CQS
    * CQRS
    * Discoverable
    * Cache
    * Observe
    * Message Driven Development
    * Micro Service
    * Event Sourcing
    * Decoupled Component
    REST++

    View Slide

  28. Hypermedia API

    View Slide

  29. Hypermedia Driven Development

    View Slide

  30. View Slide

  31. IUUQTXXXXPSHJOUFHSBUJPOXPSLTIPQQIZQFSNFEJBPSJFOUFEEFTJHOQEG

    View Slide

  32. IUUQTXXXJOGPRDPNKQBSUJDMFTXFCCFSSFTUXPSLqPX

    View Slide

  33. View Slide

  34. View Slide

  35. Self-Descriptive API

    View Slide

  36. View Slide

  37. CURIEs (Compact URI)
    IUUQTFOXJLJQFEJBPSHXJLJ$63*&

    View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. IUUQKTPOTDIFNBPSH

    View Slide

  42. backend + front-end
    UPEPKTPO UPEPTKTPO

    View Slide

  43. View Slide

  44. ? REST API

    View Slide

  45. REST != CRUD over HTTP

    View Slide

  46. REST != Return JSON with pretty URI

    View Slide

  47. View Slide

  48. IUUQTXXXJOGPRDPNOFXT$36%3&45

    View Slide

  49. IUUQTUXJUUFSDPNpFMEJOHTUBUVT

    View Slide

  50. View Slide

  51. View Slide

  52. Network affordance

    View Slide

  53. Information (+ affordance)
    NFOV SFMlPSEFSz

    View Slide

  54. hypermedia affordance
    SFMlPSEFSz

    View Slide

  55. Internet Programing

    View Slide

  56. = Programing Internet

    View Slide

  57. BEE B⒎PSEBODF

    View Slide