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

API Blueprint

API Blueprint

Tools

Dmitry Efimov

September 07, 2016
Tweet

More Decks by Dmitry Efimov

Other Decks in Programming

Transcript

  1. исходный текст в API Blueprint # Микросервис ## Статус [/status]

    ### Проверить [GET] Узнать статус микросервиса + Request + Response 200
  2. Drafter drafter doc.apib (default YAML) element: "parseResult" content: - element:

    "category" meta: classes: - "api" title: "Микросервис" content: - element: "category" meta: classes: - "resourceGroup" title: "" content: - element: "resource" meta: title: "Статус" attributes: href: "/status" content: - element: "transition" meta: title: "Проверить" content: - element: "copy" content: "Узнать статус микросервиса\n" - element: "httpTransaction" content: - element: "httpRequest" attributes: method: "GET" content: [] - element: "httpResponse" attributes: statusCode: "200" content: [] - element: "annotation" meta: classes: - "warning" attributes: code: 6 sourceMap: - element: "sourceMap" content: - - 81 - 10 content: "empty request message-body" OK. warning: (6) empty request message-body :81:10
  3. drafter doc.apib --format json {"element"=>"parseResult", "content"=>[{"element"=>"category", "meta"=>{"classes"=>["api"], "title"=>"Микросервис"}, "content"=>[{"element"=>"category", "meta"=>{"classes"=>["resourceGroup"],

    "title"=>""}, "content"=>[{"element"=>"resource", "meta"=>{"title"=>"Статус"}, "attributes"=>{"href"=>"/status"}, "content"=>[{"element"=>"transition", "meta"=>{"title"=>"Проверить"}, "content"=>[{"element"=>"copy", "content"=>"Узнать статус микросервиса\n"}, {"element"=>"httpTransaction", "content"=>[{"element"=>"httpRequest", "attributes"=>{"method"=>"GET"}, "content"=>[]}, {"element"=>"httpResponse", "attributes"=>{"statusCode"=>"200"}, "content"=>[]}]}]}]}]}]}, {"element"=>"annotation", "meta"=>{"classes"=>["warning"]}, "attributes"=>{"code"=>6, "sourceMap"=>[{"element"=>"sourceMap", "content"=>[[81, 10]]}]}, "content"=>"empty request message-body”}]} OK. warning: (6) empty request message-body :81:10
  4. Dredd если на самом деле есть приложение и документация на

    него, и хочется проверить только один первый ответ в документации для каждого запроса который обязательно не возвращает тело dredd doc.apib http://localhost:3000
  5. Drakov если хочется сделать мок сервер для запросов которые не

    отправляют тело запроса и возвращают код ответа без тела ответа drakov -f doc.apib curl -v -X GET http://localhost:3000/status
  6. Можно “натравить” dredd на drakov используя одну и туже документацию

    и они оба отработают корректно (если документация валидна)