"Design and Test First"-Workflow für REST APIs

34
@mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

Transcript of "Design and Test First"-Workflow für REST APIs

Page 1: "Design and Test First"-Workflow für REST APIs

@mrksdck

Design & Test First Workflow For REST APIs

How can REST API specification projects help us?

Page 2: "Design and Test First"-Workflow für REST APIs

@mrksdck

“hand copy” workflow

designcodetestdocument

Page 3: "Design and Test First"-Workflow für REST APIs

@mrksdck

“hand copy” workflow

design ≠ code ≠ test ≠ document

:(

Page 4: "Design and Test First"-Workflow für REST APIs

@mrksdck

need for a better workflow

less error proneeasier specification implementation

specification can be changed

Page 5: "Design and Test First"-Workflow für REST APIs

@mrksdck

REST API specification projects

api blueprint raml swagger

Page 6: "Design and Test First"-Workflow für REST APIs

@mrksdck

helpful tools

designingcodingtesting

documenting

Page 7: "Design and Test First"-Workflow für REST APIs

@mrksdck

designing

web - / text - editorssyntax highlighted

wysiwymvalidator

Page 8: "Design and Test First"-Workflow für REST APIs

@mrksdck

coding

generateserverclient

models

Page 9: "Design and Test First"-Workflow für REST APIs

@mrksdck

testing

write client & server testsvalidate implementation

import in tools e.g. postman

Page 10: "Design and Test First"-Workflow für REST APIs

@mrksdck

documenting

dynamicstatic

Page 11: "Design and Test First"-Workflow für REST APIs

@mrksdck

tools are here to help

→ generate test server→ generate test client→ code→ validate implementation→ document

Page 12: "Design and Test First"-Workflow für REST APIs

@mrksdck

“tooled” workflow

designtestcodedocument

Page 13: "Design and Test First"-Workflow für REST APIs

@mrksdck

“tooled” workflow

design = test = code = document

:)

Page 14: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger as an example

swagger specswagger editor

swagger codegenswagger ui

Page 15: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger spec

write in editorgenerate from annotated codeput into version control system

use as exchange document

Page 16: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger spec

Page 17: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger spec

Page 18: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger editor

Page 19: "Design and Test First"-Workflow für REST APIs

@mrksdck

Page 20: "Design and Test First"-Workflow für REST APIs

@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: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger codegen

implement generated interfacesuse generated clients in tests

get to know different frameworks

Page 22: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger ui

reads swagger.jsondynamic html page

try out

Page 23: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger ui

Page 24: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger ui

Page 25: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger ui

Page 26: "Design and Test First"-Workflow für REST APIs

@mrksdck

swagger ui

Page 27: "Design and Test First"-Workflow für REST APIs

@mrksdck

“tooled” workflow

designtestcodedocument

Page 28: "Design and Test First"-Workflow für REST APIs

@mrksdck

artefact relations

design

test code document

Page 29: "Design and Test First"-Workflow für REST APIs

@mrksdck

automation

design swagger-validationtestcode assertj-swaggerdocument swagger-codegen

Page 30: "Design and Test First"-Workflow für REST APIs

@mrksdck

“tooled” workflow

design = test = code = document

:)

Page 31: "Design and Test First"-Workflow für REST APIs

@mrksdck

“design and test first” - workflow

design = test = code = document

Page 32: "Design and Test First"-Workflow für REST APIs

@mrksdck

Thank you for listening

Questions?

Page 33: "Design and Test First"-Workflow für REST APIs

@mrksdck

References

examples are taken from swagger.iohttp://petstore.swagger.io/http://editor.swagger.io/http://github.com/swagger-api/

Page 34: "Design and Test First"-Workflow für REST APIs

@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/