Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Инструменты для обнаружения рассинхронизации ре...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Dmitry Efimov
February 22, 2018
Programming
53
0
Share
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
Dmitry Efimov
February 22, 2018
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
47
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
48
Валидация “REST” API по документации APIB
tuwilof
0
46
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
Ликбез по JSON
tuwilof
0
91
API Blueprint
tuwilof
0
85
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
100
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
160
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.2k
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
740
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
500
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
140
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4k
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
440
Java 21/25 Virtual Threads 소개
debop
0
320
Ruby and LLM Ecosystem 2nd
koic
1
1.4k
事業会社でのセキュリティ長期インターンについて
masachikaura
0
130
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
280
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing for Performance
lara
611
70k
Automating Front-end Workflow
addyosmani
1370
200k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
210
Music & Morning Musume
bryan
47
7.1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
620
Building Flexible Design Systems
yeseniaperezcruz
330
40k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Code Review Best Practice
trishagee
74
20k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
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