Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Инструменты для обнаружения рассинхронизации ре...
Search
Dmitry Efimov
February 22, 2018
Programming
0
51
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
Dmitry Efimov
February 22, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
45
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
46
Валидация “REST” API по документации APIB
tuwilof
0
44
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
Ликбез по JSON
tuwilof
0
88
API Blueprint
tuwilof
0
82
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
97
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
認証・認可の基本を学ぼう後編
kouyuume
0
240
エディターってAIで操作できるんだぜ
kis9a
0
730
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.8k
関数実行の裏側では何が起きているのか?
minop1205
1
700
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
190
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.2k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
170
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
140
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
740
sbt 2
xuwei_k
0
300
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
Featured
See All Featured
Building Adaptive Systems
keathley
44
2.9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Code Review Best Practice
trishagee
74
19k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Visualization
eitanlees
150
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Designing for humans not robots
tammielis
254
26k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
KATA
mclloyd
PRO
33
15k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Transcript
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
что такое реализованный код? как получить по нему информацию?
его тестируют, значит он существует
пусть реализация = тесты
тесты
нам нужно TDD
Test-Driven Development
документация
она тоже нужна
документация
какая документация без DDD
DDD?
Domain-Driven Design?
Проблемно- ориентированное проектированиe?
NO
Documentation- Driven Development
DDD это как TDD только вместо тестов документация
и те же проблемы, снова нужно что то писать помимо
кода и поддерживать
а что будет если их соединить DDD + TDD =
?
None
DDDTDD?
Document / Test-Driven Development (DTDD) Joshua Richardson https://techblog.chegg.com/2014/12/16/document- test-driven-development-dtdd/
идея не нова
gem 'apivore'
- нужно явно писать роутинг к json-schema-ам
None
gem ‘fdoc’
+не нужно явно писать роутинг к json-schema-ам
- только свой синтаксис на документацию и тесты
None
gem ‘fitting’
+не нужно явно писать роутинг к json-schema-ам
+ работает с обычными rspec тестами и использует существующую документацию
на API Blueprint (и в теории Swagger)
+ без фатального недостатка
None
что имеем?
тесты документация
fitting может проверить объединение между этими двумя множествами
JOIN! (прямо как БД)
тесты документация идеально не реализованно не задокументированно
всего два отчета реализованно / не реализованно задокументированно / не
задокументированно
для сервера достаточно проверять что он возвращает ответы по документации
но ответ не получить без запроса
1. смотрим задокументирован ли роут за запрос
2. смотрим есть ли в документации ответ с таким статусом
3. матчи ответ по JSON Schema из доки
4. (в ближайшем будущем) смотрим “покрытие” JSON Schema
где примеры? и можно ли добавить в fitting адаптер, что
бы переиспользовать в других языках и технологиях, например в проектах на Erlang?
None