Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... ·...
Transcript of Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... ·...
![Page 1: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/1.jpg)
@mrksdck
Design & Test First Workflow For REST APIs
How can REST API specification projects help us?
![Page 2: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/2.jpg)
@mrksdck
“hand copy” workflow
designcodetestdocument
![Page 3: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/3.jpg)
@mrksdck
“hand copy” workflow
design ≠ code ≠ test ≠ document
:(
![Page 4: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/4.jpg)
@mrksdck
need for a better workflow
less error proneeasier specification implementation
specification can be changed
![Page 5: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/5.jpg)
@mrksdck
REST API specification projects
api blueprint raml swagger
![Page 6: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/6.jpg)
@mrksdck
helpful tools
designingcodingtesting
documenting
![Page 7: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/7.jpg)
@mrksdck
designing
web - / text - editorssyntax highlighted
wysiwymvalidator
![Page 8: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/8.jpg)
@mrksdck
coding
generateserverclient
models
![Page 9: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/9.jpg)
@mrksdck
testing
write client & server testsvalidate implementation
import in tools e.g. postman
![Page 10: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/10.jpg)
@mrksdck
documenting
dynamicstatic
![Page 11: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/11.jpg)
@mrksdck
tools are here to help
→ generate test server→ generate test client→ code→ validate implementation→ document
![Page 12: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/12.jpg)
@mrksdck
“tooled” workflow
designtestcodedocument
![Page 13: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/13.jpg)
@mrksdck
“tooled” workflow
design = test = code = document
:)
![Page 14: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/14.jpg)
@mrksdck
swagger as an example
swagger specswagger editor
swagger codegenswagger ui
![Page 15: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/15.jpg)
@mrksdck
swagger spec
write in editorgenerate from annotated codeput into version control system
use as exchange document
![Page 16: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/16.jpg)
@mrksdck
swagger spec
![Page 17: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/17.jpg)
@mrksdck
swagger spec
![Page 18: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/18.jpg)
@mrksdck
swagger editor
![Page 19: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/19.jpg)
@mrksdck
![Page 20: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/20.jpg)
@mrksdck
swagger codegen
possible targetsandroid, async-scala, csharp, dart, flash, java, jaxrs, inflector, nodejs, objc, perl, php, python, python3,
qt5cpp, retrofit, ruby, scala, scalatra, silex-PHP, sinatra, spring-mvc, dynamic-html, html, swagger, swagger-yaml,
swift, tizen, typescript-angular, typescript-node, akka-scala, CsharpDotNet2
![Page 21: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/21.jpg)
@mrksdck
swagger codegen
implement generated interfacesuse generated clients in tests
get to know different frameworks
![Page 22: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/22.jpg)
@mrksdck
swagger ui
reads swagger.jsondynamic html page
try out
![Page 23: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/23.jpg)
@mrksdck
swagger ui
![Page 24: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/24.jpg)
@mrksdck
swagger ui
![Page 25: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/25.jpg)
@mrksdck
swagger ui
![Page 26: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/26.jpg)
@mrksdck
swagger ui
![Page 27: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/27.jpg)
@mrksdck
“tooled” workflow
designtestcodedocument
![Page 28: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/28.jpg)
@mrksdck
artefact relations
design
test code document
![Page 29: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/29.jpg)
@mrksdck
automation
design swagger-validationtestcode assertj-swaggerdocument swagger-codegen
![Page 30: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/30.jpg)
@mrksdck
“tooled” workflow
design = test = code = document
:)
![Page 31: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/31.jpg)
@mrksdck
“design and test first” - workflow
design = test = code = document
![Page 32: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/32.jpg)
@mrksdck
Thank you for listening
Questions?
![Page 33: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/33.jpg)
@mrksdck
References
examples are taken from swagger.iohttp://petstore.swagger.io/http://editor.swagger.io/http://github.com/swagger-api/
![Page 34: Workflow For REST APIs Design & Test Firstbed-con.org/2015/files/slides/Design_and_Test_First... · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST](https://reader033.fdocuments.in/reader033/viewer/2022042223/5ec98ab5b83f5f77ec2d4814/html5/thumbnails/34.jpg)
@mrksdck
related blog postshttp://swagger.io/writing-apis-with-the-swagger-inflector/http://blog.raml.org/guest-post-api-first-with-raml-development-and-documentation-of-rest-apis/