40
Spring REST Docs Documenting RESTful APIs using your tests

Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Embed Size (px)

Citation preview

Page 1: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Spring REST DocsDocumenting RESTful APIs using your tests

Page 2: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

WHOAMI

• Work for Ordina Belgium • Open source enthusiast • Spring contributor • Speaker • Technical lead & coding architect @ Proximus • Marathon runner

Page 3: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Documentation of REST APIs

Page 4: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Having no documentation is better than wrong documentation

Page 5: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Documentation should be easy to write, in a format which is designed for writing

Page 6: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Frameworks should not be analysing your implementation to predict documentation

Page 7: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Swagger

Page 8: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 9: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Documentation doesn’t support hypermedia and is URI centric

Page 10: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Data

Links

Page 11: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 12: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Documentation is intrusive in the production code

Page 13: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 14: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Documentation exposes and relies on

implementation details

Page 15: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 16: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Framework is heavy

Page 17: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

A new alternative

Page 18: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

integration tests

generated snippets

manually written template

generated HTML

Page 19: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Integration test

Page 20: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

curl-request snippet (generated)

http-request snippet (generated)

Page 21: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

http-response snippet (generated)

Page 22: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

links snippet (generated)

Page 23: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

response-fields snippet (generated)

Page 24: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

documentation template (manually written)

Page 25: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

documentation template (manually written)

Page 26: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 27: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 28: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
Page 29: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Features

Page 30: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Easy to package the documentation in your

project’s jar file

Page 31: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Snippets for

- Hypermedia links - Request & response payloads - Request parameters - Path parameters - HTTP headers

Page 32: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Easy to customisethe request or responsebefore it is documented

Page 33: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Easy to add extra information to the snippets

Page 34: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Easy to ignore partsof the request or response

during documentation

Page 35: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Easy to mark parts of the request or response

as optional

Page 36: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Support for bothJSON and XML

Page 37: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Support upcoming forREST Assured

Page 38: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Ideal for brownfieldstubbing

Page 39: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Demo

Page 40: Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx

Thank you for your attention

@andreasevers

http://projects.spring.io/spring-restdocs/

https://github.com/spring-projects/spring-restdocs