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

Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

Design & Test First Workflow For REST APIs

How can REST API specification projects help us?

Page 2: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“hand copy” workflow

designcodetestdocument

Page 3: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“hand copy” workflow

design ≠ code ≠ test ≠ document

:(

Page 4: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

need for a better workflow

less error proneeasier specification implementation

specification can be changed

Page 5: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

REST API specification projects

api blueprint raml swagger

Page 6: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

helpful tools

designingcodingtesting

documenting

Page 7: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

designing

web - / text - editorssyntax highlighted

wysiwymvalidator

Page 8: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

coding

generateserverclient

models

Page 9: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

testing

write client & server testsvalidate implementation

import in tools e.g. postman

Page 10: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

documenting

dynamicstatic

Page 11: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

tools are here to help

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

Page 12: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“tooled” workflow

designtestcodedocument

Page 13: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“tooled” workflow

design = test = code = document

:)

Page 14: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger as an example

swagger specswagger editor

swagger codegenswagger ui

Page 15: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@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 First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger spec

Page 17: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger spec

Page 18: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger editor

Page 19: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

Page 20: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@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 First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger codegen

implement generated interfacesuse generated clients in tests

get to know different frameworks

Page 22: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger ui

reads swagger.jsondynamic html page

try out

Page 23: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger ui

Page 24: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger ui

Page 25: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger ui

Page 26: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

swagger ui

Page 27: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“tooled” workflow

designtestcodedocument

Page 28: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

artefact relations

design

test code document

Page 29: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

automation

design swagger-validationtestcode assertj-swaggerdocument swagger-codegen

Page 30: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“tooled” workflow

design = test = code = document

:)

Page 31: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

“design and test first” - workflow

design = test = code = document

Page 32: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

Thank you for listening

Questions?

Page 33: Workflow For REST APIs Design & Test First · 2016-01-15 · @mrksdck Design & Test First Workflow For REST APIs How can REST API specification projects help us?

@mrksdck

References

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